49ec86aa8da9ed4894dcaf32981c6378069d2a13
[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                 rm -rf "$base"
48                 rc=1
49                 continue
50         fi
51         if echo -n "$base"/*|grep ' ';then
52                 echo >&2 "Error <$log>: Too many files in: $base"
53                 rm -rf "$base"
54                 rc=1
55                 continue
56         fi
57         if ! (echo -n "$base"/*|grep -q '[.]tar[.]bz2$');then
58                 echo >&2 "Error <$log>: Invalid file:" "$base"/*
59                 rm -rf "$base"
60                 rc=1
61                 continue
62         fi
63         if ! (cd "$base";tar xjf *);then
64                 echo >&2 "Error <$log>: tar xjf"
65                 rm -rf "$base"
66                 rc=1
67                 continue
68         fi
69         rm -f "$base"/*.tar.bz2
70         chmod -x "$base"/*
71         perl -i -pe 's{\Q'"$HOME"'\E/.*?/build/[^/]*/}{}g' "$base"/*
72 #       if ! (echo "$base"/*|grep -q '^[^ ]*[.]log [^ ]*[.]sum$');then
73 #               echo >&2 "Error <$log>: Not two files .log+.sum:" "$base"/*
74 #               exit 1
75 #       fi
76 #       mv -f "$base"/*.log "$base"/gdb.log
77 #       mv -f "$base"/*.sum "$base"/gdb.sum
78 done
79 if [ $rc -eq 0 ];then
80         echo OK
81 fi
82 exit $rc