Extract gdb.sum+gdb.log from the Fedora/Red Hat gdb rpm build log.
[nethome.git] / bin / gdbunpack
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