X-Git-Url: https://git.jankratochvil.net/?a=blobdiff_plain;f=bin%2Fchangelogget;h=b59b87d6dad0217ef6e491cb898eddf1117c8363;hb=b26b3e459df61e5eff2c9818b7e13b7cbdecbefd;hp=e75591a2af7b2d0d74065c7710fa97ca1b9f21ac;hpb=e5bff169836c240f231fe314d484771538a7121e;p=nethome.git
diff --git a/bin/changelogget b/bin/changelogget
index e75591a..b59b87d 100755
--- a/bin/changelogget
+++ b/bin/changelogget
@@ -2,26 +2,60 @@
# $Id$
v=true
-if [ "$1" = "-n" ];then
+if [ "$1" = "-q" ];then
v=false
shift
fi
-for arg in "$@";do
+changelog=""
+if [ "$1" = "-n" ];then
+ changelog="$1"
+ shift
+fi
+
+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://sourceware.org/ml/}" -a "$arg" != "${arg%.html}" ];then
- echo >&2 -n '*'
+ if [ "$arg" != "${arg#http://sources.redhat.com/}" ];then
+ arg="http://sourceware.org/${arg#http://sources.redhat.com/}"
+ fi
+ if [ "$arg" != "${arg#http://sourceware.org/ml/*-cvs/}" -a "$arg" != "${arg%.html}" ];then
+ echo >&2 -n '+'
+ 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 -n $(wget -q -O - "$arg" | sed -n -e 's/&/\&/g' -e 's#^\1$#\1#p')
+ 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"
+ raw="$(wget -q -O - "$arg" | sed -n 's#^.*Raw text.*$#\1#p')"
+ if [ -z "$raw" ];then
+ echo >&2 "No raw URL found: $arg"
+ exit 1
+ fi
+ 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 | perl -p -e '$c=1 if s{^(?:---|\Q+++\E)(?= \S+/ChangeLog\t)}{###};s{^@@}{##} if $c;'
+ 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