Do not abort on the first error.
[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 rc=0
6
7 force=false
8 if [ "$1" = "-f" ];then
9         force=true
10         shift
11 fi
12 clean=false
13 if [ "$1" = "-c" ];then
14         clean=true
15         shift
16 fi
17 args="$*"
18 if [ -z "$args" ];then
19         args="`find -name "*.log"`"
20 fi
21 for log in $args;do
22         base="${log%.log}"
23         if [ "$base" = "$log" ];then
24                 base="${log%/log}"
25                 if [ "$base" != "$log" ];then
26                         base="$base/out"
27                 fi
28         fi
29         if [ "$base" = "$log" -o "$log" != "${log%/gdb.log}" -o "$log" = "gdb.log" ];then
30                 echo >&2 "file has no .log suffix or is gdb.log: $log"
31                 rc=1
32                 continue
33         fi
34         if ($force || $clean) && test -d "$base";then
35                 rm -rf "$base"
36         fi
37         if $clean;then
38                 continue
39         fi
40         if ! mkdir "$base";then
41                 echo >&2 "Error <$log>: mkdir"
42                 rc=1
43                 continue
44         fi
45         if ! (cd "$base";uudecode) <"$log";then
46                 echo >&2 "Error <$log>: uudecode"
47                 rc=1
48                 continue
49         fi
50         if echo -n "$base"/*|grep ' ';then
51                 echo >&2 "Error <$log>: Too many files in: $base"
52                 rc=1
53                 continue
54         fi
55         if ! (echo -n "$base"/*|grep -q '[.]tar[.]bz2$');then
56                 echo >&2 "Error <$log>: Invalid file:" "$base"/*
57                 rc=1
58                 continue
59         fi
60         if ! (cd "$base";tar xjf *);then
61                 echo >&2 "Error <$log>: tar xjf"
62                 rc=1
63                 continue
64         fi
65         rm -f "$base"/*.tar.bz2
66         chmod -x "$base"/*
67 #       if ! (echo "$base"/*|grep -q '^[^ ]*[.]log [^ ]*[.]sum$');then
68 #               echo >&2 "Error <$log>: Not two files .log+.sum:" "$base"/*
69 #               exit 1
70 #       fi
71 #       mv -f "$base"/*.log "$base"/gdb.log
72 #       mv -f "$base"/*.sum "$base"/gdb.sum
73 done
74 if [ $rc -eq 0 ];then
75         echo OK
76 fi
77 exit $rc