Home | History | Annotate | Download | only in bin
      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]\+ &ndash; \(.*\)<\/title>/\1/')
     44 		echo "<li><a href=\"$i\">Bug $id</a> - $summary</li>"
     45 		echo ""
     46 	done
     47 
     48 	echo "</ul>"
     49 fi
     50