Extract gdb.sum+gdb.log from the Fedora/Red Hat gdb rpm build log.
[nethome.git] / bin / gdbunpack
1 #! /bin/sh
2 # $Id$
3 # Extract gdb.sum+gdb.log from the Fedora/Red Hat gdb rpm build log.
4
5 force=false
6 if [ "$1" = "-f" ];then
7         force=true
8         shift
9 fi
10 for log in "$@";do
11         base="${log%.log}"
12         if [ "$base" = "$log" -o "$log" != "${log%/gdb.log}" -o "$log" = "gdb.log" ];then
13                 echo >&2 "file has no .log suffix or is gdb.log: $log"
14                 continue
15         fi
16         if $force && test -d "$base";then
17                 rm -rf "$base"
18         fi
19         if ! mkdir "$base";then
20                 echo >&2 "Error <$log>: mkdir"
21                 exit 1
22         fi
23         if ! (cd "$base";uudecode) <"$log";then
24                 echo >&2 "Error <$log>: uudecode"
25                 exit 1
26         fi
27         if echo -n "$base"/*|grep ' ';then
28                 echo >&2 "Error <$log>: Too many files in: $base"
29                 exit 1
30         fi
31         if ! (echo -n "$base"/*|grep -q '[.]tar[.]bz2$');then
32                 echo >&2 "Error <$log>: Invalid file:" "$base"/*
33                 exit 1
34         fi
35         if ! (cd "$base";tar xjf *);then
36                 echo >&2 "Error <$log>: tar xjf"
37                 exit 1
38         fi
39         rm -f "$base"/*.tar.bz2
40         chmod -x "$base"/*
41         if ! (echo "$base"/*|grep -q '^[^ ]*[.]log [^ ]*[.]sum$');then
42                 echo >&2 "Error <$log>: Not two files .log+.sum:" "$base"/*
43                 exit 1
44         fi
45         mv -f "$base"/*.log "$base"/gdb.log
46         mv -f "$base"/*.sum "$base"/gdb.sum
47 done
48 echo OK