1 #!/bin/bash 2 3 # This script is used to generate the list of fixed bugs that 4 # appears in the release notes files, with HTML formatting. 5 # 6 # Note: This script could take a while until all details have 7 # been fetched from bugzilla. 8 # 9 # Usage examples: 10 # 11 # $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 12 # $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 > bugfixes 13 # $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee bugfixes 14 # $ DRYRUN=yes bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 15 # $ DRYRUN=yes bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | wc -l 16 17 18 # regex pattern: trim before bug number 19 trim_before='s/.*show_bug.cgi?id=\([0-9]*\).*/\1/' 20 21 # regex pattern: reconstruct the url 22 use_after='s,^,https://bugs.freedesktop.org/show_bug.cgi?id=,' 23 24 # extract fdo urls from commit log 25 urls=$(git log $* | grep 'bugs.freedesktop.org/show_bug' | sed -e $trim_before | sort -n -u | sed -e $use_after) 26 27 # if DRYRUN is set to "yes", simply print the URLs and don't fetch the 28 # details from fdo bugzilla. 29 #DRYRUN=yes 30 31 if [ "x$DRYRUN" = xyes ]; then 32 for i in $urls 33 do 34 echo $i 35 done 36 else 37 echo "<ul>" 38 echo "" 39 40 for i in $urls 41 do 42 id=$(echo $i | cut -d'=' -f2) 43 summary=$(wget --quiet -O - $i | grep -e '<title>.*</title>' | sed -e 's/ *<title>[0-9]\+ – \(.*\)<\/title>/\1/') 44 echo "<li><a href=\"$i\">Bug $id</a> - $summary</li>" 45 echo "" 46 done 47 48 echo "</ul>" 49 fi 50