ad1095897300efbb7981b3962424063e0f15ded7
[nethome.git] / bin / diffgdbdir
1 #! /bin/sh
2
3 x="*.log"
4 x2="foobar"
5 o=""
6 while true;do
7         if [ "$1" = "-r" ];then
8                 o="$o -r"
9                 shift
10                 continue
11         fi
12         if [ "$1" = "-N" ];then
13                 o="$o -N"
14                 shift
15                 continue
16         fi
17         if [ "$1" = "log" -o "$1" = "-l" ];then
18                 x="*.sum"
19                 o="-r"
20                 shift
21                 continue
22         fi
23         if [ "$1" = "pie" ];then
24                 x2="*pie*"
25                 shift
26                 continue
27         fi
28         break
29 done
30
31 if [ $# != 2 ];then
32         echo >&2 "$0 hammock/xxxxyyzzname hammock/XXXXYYZZothername"
33         exit 1
34 fi
35
36 diffed=false
37 function diffitraw
38 {
39         dir1=$1
40         dir2=$2
41         if [ ! -e "$dir2" ];then
42                 echo "MISSING: $dir1 $dir2"
43                 return
44         fi
45         diffgdb $o -x rpm-qa -x "$x" -x "$x2" $dir1 $dir2
46         diffed=true
47 }
48 function diffit
49 {
50         diffitraw $1/out $2/out
51 }
52
53 if [ -f "$1" ];then
54         if [ ! -e "${1%.tar.xz}" ];then
55                 (
56                         cd "$(dirname "$1")"
57                         tar xJf "$(basename "$1")"
58                 )
59         fi
60         set "${1%.tar.xz}" "$2"
61         if [ ! -d "$1" ];then
62                 echo "! $1"
63                 exit 1
64         fi
65 fi
66 if [ -f "$2" ];then
67         if [ ! -e "${2%.tar.xz}" ];then
68                 (
69                         cd "$(dirname "$2")"
70                         tar xJf "$(basename "$2")"
71                 )
72         fi
73         set "$1" "${2%.tar.xz}"
74         if [ ! -d "$2" ];then
75                 echo "! $2"
76                 exit 1
77         fi
78 fi
79
80 for arch in x86_64 i386;do
81         if [ -d $1-$arch ];then
82                 diffit $1-$arch $2-$arch
83         fi
84         if [ -d $1$arch ];then
85                 diffit $1$arch $2$arch
86         fi
87         if [ -d $1/*-$arch ];then
88                 diffit $1/*-$arch $2/*-$arch
89         fi
90 done
91 if [ -d $1/out ];then
92         diffit $1 $2
93         diffed=true
94 fi
95 if [ "$1" != "${1#tests/}" -a -d $1 ];then
96         diffitraw $1 $2
97         diffed=true
98 fi
99 if ! $diffed;then
100         diffitraw $1 $2
101         #echo "NOT FOUND: $1 $2"
102 fi