]> git.proxmox.com Git - mirror_qemu.git/blame - scripts/show-fixed-bugs.sh
i386: Make unversioned CPU models be aliases
[mirror_qemu.git] / scripts / show-fixed-bugs.sh
CommitLineData
6867783a
TH
1#!/bin/sh
2
3# This script checks the git log for URLs to the QEMU launchpad bugtracker
4# and optionally checks whether the corresponding bugs are not closed yet.
5
6show_help () {
7 echo "Usage:"
8 echo " -s <commit> : Start searching at this commit"
9 echo " -e <commit> : End searching at this commit"
10 echo " -c : Check if bugs are still open"
11 echo " -b : Open bugs in browser"
12}
13
14while getopts "s:e:cbh" opt; do
15 case "$opt" in
16 s) start="$OPTARG" ;;
17 e) end="$OPTARG" ;;
18 c) check_if_open=1 ;;
19 b) show_in_browser=1 ;;
20 h) show_help ; exit 0 ;;
21 *) echo "Use -h for help." ; exit 1 ;;
22 esac
23done
24
25if [ "x$start" = "x" ]; then
aa2192bf 26 start=$(git tag -l 'v[0-9]*\.[0-9]*\.0' | tail -n 2 | head -n 1)
6867783a
TH
27fi
28if [ "x$end" = "x" ]; then
aa2192bf 29 end=$(git tag -l 'v[0-9]*\.[0-9]*\.0' | tail -n 1)
6867783a
TH
30fi
31
32if [ "x$start" = "x" ] || [ "x$end" = "x" ]; then
33 echo "Could not determine start or end revision ... Please note that this"
34 echo "script must be run from a checked out git repository of QEMU."
35 exit 1
36fi
37
38echo "Searching git log for bugs in the range $start..$end"
39
40urlstr='https://bugs.launchpad.net/\(bugs\|qemu/+bug\)/'
aa2192bf 41bug_urls=$(git log $start..$end \
6867783a 42 | sed -n '\,'"$urlstr"', s,\(.*\)\('"$urlstr"'\)\([0-9]*\).*,\2\4,p' \
aa2192bf 43 | sort -u)
6867783a
TH
44
45echo Found bug URLs:
46for i in $bug_urls ; do echo " $i" ; done
47
48if [ "x$check_if_open" = "x1" ]; then
49 echo
50 echo "Checking which ones are still open..."
51 for i in $bug_urls ; do
52 if ! curl -s -L "$i" | grep "value status" | grep -q "Fix Released" ; then
53 echo " $i"
54 final_bug_urls="$final_bug_urls $i"
55 fi
56 done
57else
58 final_bug_urls=$bug_urls
59fi
60
61if [ "x$final_bug_urls" = "x" ]; then
62 echo "No open bugs found."
63elif [ "x$show_in_browser" = "x1" ]; then
64 # Try to determine which browser we should use
65 if [ "x$BROWSER" != "x" ]; then
66 bugbrowser="$BROWSER"
67 elif command -v xdg-open >/dev/null 2>&1; then
68 bugbrowser=xdg-open
69 elif command -v gnome-open >/dev/null 2>&1; then
70 bugbrowser=gnome-open
aa2192bf 71 elif [ "$(uname)" = "Darwin" ]; then
6867783a
TH
72 bugbrowser=open
73 elif command -v sensible-browser >/dev/null 2>&1; then
74 bugbrowser=sensible-browser
75 else
76 echo "Please set the BROWSER variable to the browser of your choice."
77 exit 1
78 fi
79 # Now show the bugs in the browser
80 first=1
81 for i in $final_bug_urls; do
82 "$bugbrowser" "$i"
83 if [ $first = 1 ]; then
84 # if it is the first entry, give the browser some time to start
85 # (to avoid messages like "Firefox is already running, but is
86 # not responding...")
87 sleep 4
88 first=0
89 fi
90 done
91fi