Extract gdb.sum+gdb.log from the Fedora/Red Hat gdb rpm build log.
authorlace <>
Tue, 29 Jan 2008 19:27:40 +0000 (19:27 +0000)
committerlace <>
Tue, 29 Jan 2008 19:27:40 +0000 (19:27 +0000)
bin/gdbunpack [new file with mode: 0755]

diff --git a/bin/gdbunpack b/bin/gdbunpack
new file mode 100755 (executable)
index 0000000..561e3f8
--- /dev/null
@@ -0,0 +1,48 @@
+#! /bin/sh
+# $Id$
+# Extract gdb.sum+gdb.log from the Fedora/Red Hat gdb rpm build log.
+
+force=false
+if [ "$1" = "-f" ];then
+       force=true
+       shift
+fi
+for log in "$@";do
+       base="${log%.log}"
+       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"
+               continue
+       fi
+       if $force && test -d "$base";then
+               rm -rf "$base"
+       fi
+       if ! mkdir "$base";then
+               echo >&2 "Error <$log>: mkdir"
+               exit 1
+       fi
+       if ! (cd "$base";uudecode) <"$log";then
+               echo >&2 "Error <$log>: uudecode"
+               exit 1
+       fi
+       if echo -n "$base"/*|grep ' ';then
+               echo >&2 "Error <$log>: Too many files in: $base"
+               exit 1
+       fi
+       if ! (echo -n "$base"/*|grep -q '[.]tar[.]bz2$');then
+               echo >&2 "Error <$log>: Invalid file:" "$base"/*
+               exit 1
+       fi
+       if ! (cd "$base";tar xjf *);then
+               echo >&2 "Error <$log>: tar xjf"
+               exit 1
+       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
+done
+echo OK