X-Git-Url: https://git.jankratochvil.net/?p=nethome.git;a=blobdiff_plain;f=bin%2Fgdbunpack;h=6f8a60f075368ac7129bcca1f0943d11a0a57531;hp=fa94885c0542e3fc99881d4c8ffeaf4b5894109a;hb=HEAD;hpb=6817b94bfd18c785ee5b44e08bd97ed08539e4ab diff --git a/bin/gdbunpack b/bin/gdbunpack index fa94885..6f8a60f 100755 --- a/bin/gdbunpack +++ b/bin/gdbunpack @@ -2,6 +2,8 @@ # $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 @@ -18,8 +20,15 @@ if [ -z "$args" ];then 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 || $clean) && test -d "$base";then @@ -30,26 +39,36 @@ for log in $args;do 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"/* + 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 @@ -57,4 +76,7 @@ for log in $args;do # 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