X-Git-Url: http://git.jankratochvil.net/?p=nethome.git;a=blobdiff_plain;f=bin%2Fgdbunpack;h=6f8a60f075368ac7129bcca1f0943d11a0a57531;hp=561e3f8f10177be883bf1ed2d70c768a24b414b3;hb=e0f54b4c0e257360604f16e326abd3b1779a3670;hpb=95c83220181394be2bf40b729f753e2dd5fa6230 diff --git a/bin/gdbunpack b/bin/gdbunpack index 561e3f8..6f8a60f 100755 --- a/bin/gdbunpack +++ b/bin/gdbunpack @@ -2,47 +2,81 @@ # $Id$ # Extract gdb.sum+gdb.log from the Fedora/Red Hat gdb rpm build log. +rc=0 + force=false if [ "$1" = "-f" ];then force=true shift fi -for log in "$@";do +clean=false +if [ "$1" = "-c" ];then + clean=true + shift +fi +args="$*" +if [ -z "$args" ];then + args="`find -name "*.log"`" +fi +for log in $args;do base="${log%.log}" + if [ "$base" = "$log" ];then + base="${log%/log}" + if [ "$base" != "$log" ];then + base="$base/out" + fi + fi if [ "$base" = "$log" -o "$log" != "${log%/gdb.log}" -o "$log" = "gdb.log" ];then echo >&2 "file has no .log suffix or is gdb.log: $log" + rc=1 continue fi - if $force && test -d "$base";then + if ($force || $clean) && test -d "$base";then rm -rf "$base" fi + if $clean;then + continue + fi if ! mkdir "$base";then echo >&2 "Error <$log>: mkdir" - exit 1 + rc=1 + continue fi - if ! (cd "$base";uudecode) <"$log";then + if ! (cd "$base";sed -n '/^begin /,$p'|uudecode) <"$log";then echo >&2 "Error <$log>: uudecode" - exit 1 + rm -rf "$base" + rc=1 + continue fi if echo -n "$base"/*|grep ' ';then echo >&2 "Error <$log>: Too many files in: $base" - exit 1 + rm -rf "$base" + rc=1 + continue fi if ! (echo -n "$base"/*|grep -q '[.]tar[.]bz2$');then echo >&2 "Error <$log>: Invalid file:" "$base"/* - exit 1 + rm -rf "$base" + rc=1 + continue fi if ! (cd "$base";tar xjf *);then echo >&2 "Error <$log>: tar xjf" - exit 1 + rm -rf "$base" + rc=1 + continue fi rm -f "$base"/*.tar.bz2 chmod -x "$base"/* - if ! (echo "$base"/*|grep -q '^[^ ]*[.]log [^ ]*[.]sum$');then - echo >&2 "Error <$log>: Not two files .log+.sum:" "$base"/* - exit 1 - fi - mv -f "$base"/*.log "$base"/gdb.log - mv -f "$base"/*.sum "$base"/gdb.sum + perl -i -pe 's{\Q'"$HOME"'\E/.*?/build/[^/]*/}{}g' "$base"/* +# if ! (echo "$base"/*|grep -q '^[^ ]*[.]log [^ ]*[.]sum$');then +# echo >&2 "Error <$log>: Not two files .log+.sum:" "$base"/* +# exit 1 +# fi +# mv -f "$base"/*.log "$base"/gdb.log +# mv -f "$base"/*.sum "$base"/gdb.sum done -echo OK +if [ $rc -eq 0 ];then + echo OK +fi +exit $rc