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