+support .tar.xz
[nethome.git] / bin / diffgdbdir
1 #! /bin/sh
2
3 x="*.log"
4 if [ "$1" = "log" ];then
5         x="*.sum"
6         shift
7 fi
8
9 if [ $# != 2 ];then
10         echo >&2 "$0 hammock/xxxxyyzzname hammock/XXXXYYZZothername"
11         exit 1
12 fi
13
14 diffed=false
15 function diffit
16 {
17         dir1=$1/out
18         dir2=$2/out
19         if [ ! -e "$dir2" ];then
20                 echo "MISSING: $dir1 $dir2"
21                 return
22         fi
23         diffgdb -x "$x" $dir1 $dir2
24         diffed=true
25 }
26
27 if [ -f "$1" -a ! -e "${1%.tar.xz}" ];then
28         (
29                 cd "$(dirname "$1")"
30                 tar xJf "$(basename "$1")"
31         )
32         set "${1%.tar.xz}" "$2"
33         if [ ! -d "$1" ];then
34                 echo "! $1"
35                 exit 1
36         fi
37 fi
38 if [ -f "$2" -a ! -e "${2%.tar.xz}" ];then
39         (
40                 cd "$(dirname "$2")"
41                 tar xJf "$(basename "$2")"
42         )
43         set "$1" "${2%.tar.xz}"
44         if [ ! -d "$2" ];then
45                 echo "! $2"
46                 exit 1
47         fi
48 fi
49
50 for arch in x86_64 i386;do
51         if [ -d $1-$arch ];then
52                 diffit $1-$arch $2-$arch
53         fi
54         if [ -d $1$arch ];then
55                 diffit $1$arch $2$arch
56         fi
57         if [ -d $1/*-$arch ];then
58                 diffit $1/*-$arch $2/*-$arch
59         fi
60 done
61 if [ -d $1/out ];then
62         diffit $1 $2
63         diffed=true
64 fi
65 if ! $diffed;then
66         echo "NOT FOUND: $1 $2"
67 fi