X-Git-Url: https://git.jankratochvil.net/?p=nethome.git;a=blobdiff_plain;f=bin%2Fchangelogget;h=b59b87d6dad0217ef6e491cb898eddf1117c8363;hp=cbf780b9e9ba56f1a3c64211d307eb3a5c9e2360;hb=a8e600e7fd904d45e73ef114d0ec791c510b207f;hpb=45d8390d283d33546e897d22bcbd2cc804d89d1d diff --git a/bin/changelogget b/bin/changelogget index cbf780b..b59b87d 100755 --- a/bin/changelogget +++ b/bin/changelogget @@ -11,7 +11,16 @@ if [ "$1" = "-n" ];then changelog="$1" shift fi -for arg in "$@";do + +function formatpatch +{ + # --- src/gdb/ChangeLog 2008/04/24 08:46:17 1.9308 + diffdecvs | if [ -z "$changelog" ];then perl -p -e '$r=qr/^(?:---|\Q+++\E) /o;$c=0 if m{$r}o;$c=1 if s{$r(?=\S+/ChangeLog(?:\t|$))}{### }o;s{^@@}{##} if $c;'; else cat; fi +} + +if [ "$*" = "-f" ];then + formatpatch +else for arg in "$@";do # http://sourceware.org/ml/gdb-cvs/2099-99/msg99999.html if [ "$arg" != "${arg#http://sources.redhat.com/}" ];then arg="http://sourceware.org/${arg#http://sources.redhat.com/}" @@ -21,6 +30,11 @@ for arg in "$@";do echo "$arg" echo changelogget -q $changelog $(wget -q -O - "$arg" | sed -n -e 's/&/\&/g' -e 's#^\1$#\1#p') + elif [ "$arg" != "${arg#http://gcc.gnu.org/viewcvs[?]view=revision&revision=}" ];then + echo >&2 -n '+' + echo "$arg" + echo + changelogget -q $changelog $(wget -q -O - "$arg" | sed -n -e 's/&/\&/g' -e 's#^.*]*\)"[^>]*>text changed<.*$#http://gcc.gnu.org\1#p') elif [ "$arg" != "${arg#http://sourceware.org/ml/}" -a "$arg" != "${arg%.html}" ];then echo >&2 -n '#' echo "$arg" @@ -32,13 +46,16 @@ for arg in "$@";do wget -q -O - "http://sourceware.org$raw" | sed -n -e '/^Subject:/p' -e '/^$/,$p' elif [ "$arg" != "${arg#http://sourceware.org/cgi-bin/cvsweb.cgi/src/}" ];then echo >&2 -n '.' - # --- src/gdb/ChangeLog 2008/04/24 08:46:17 1.9308 - wget -q -O - "$arg" | diffdecvs | if [ -z "$changelog" ];then perl -p -e '$c=1 if s{^(?:---|\Q+++\E)(?= \S+/ChangeLog\t)}{###};s{^@@}{##} if $c;'; else cat; fi + wget -q -O - "$arg" | formatpatch + # http://gcc.gnu.org/viewcvs/trunk/ChangeLog?r1=154127&r2=154126&pathrev=154127 + elif [ "$arg" != "${arg#http://gcc.gnu.org/viewcvs/}" ];then + echo >&2 -n '.' + wget -q -O - "$arg&view=patch" | formatpatch else echo >&2 "Invalid URL: $arg" exit 1 fi -done +done;fi if $v;then echo >&2 OK fi