comparison scripts/bloatcheck @ 1337:ca297cc8a204 draft

Replace large parenthetical in bloatcheck with a function.
author Rob Landley <rob@landley.net>
date Sun, 08 Jun 2014 13:24:02 -0500
parents f3169b2492f1
children e084440e6995
comparison
equal deleted inserted replaced
1336:97c7f42068b5 1337:ca297cc8a204
12 [ -z "$STUFF" ] && 12 [ -z "$STUFF" ] &&
13 STUFF="$NEXT" || 13 STUFF="$NEXT" ||
14 STUFF="$(printf "%s\n%s" "$STUFF" "$NEXT")" 14 STUFF="$(printf "%s\n%s" "$STUFF" "$NEXT")"
15 } 15 }
16 16
17 do_bloatcheck()
18 {
19 LASTNAME=
20 DELTA=0
21 TOTAL=0
22 OLD=0
23 NEW=0
24 STUFF=
25
26 printf "name% 46s% 10s% 11s\n" old new delta
27 echo "-----------------------------------------------------------------------"
28 while read a b c d
29 do
30 THISNAME=$(echo " $d" | sed 's/[.][0-9]*$//')
31
32 if [ "$LASTNAME" != "$THISNAME" ]
33 then
34 TOTAL=$(($TOTAL+$DELTA))
35 [ $DELTA -ne 0 ] && addline
36 LASTNAME="$THISNAME"
37 DELTA=0
38 OLD=0
39 NEW=0
40 fi
41
42 SIZE=$(printf "%d" "0x$b")
43 if [ "$a" == "<" ]
44 then
45 OLD=$(($OLD+$SIZE))
46 SIZE=$((-1*$SIZE))
47 else
48 NEW=$(($NEW+$SIZE))
49 fi
50 DELTA=$(($DELTA+$SIZE))
51 done
52
53 TOTAL=$(($TOTAL+$DELTA))
54 [ $DELTA -ne 0 ] && addline
55
56 echo "$STUFF" | sort -k4,4nr
57 echo "-----------------------------------------------------------------------"
58 printf "% 71d total\n" "$TOTAL"
59 }
60
17 diff <(nm --size-sort "$1" | sort -k3,3) \ 61 diff <(nm --size-sort "$1" | sort -k3,3) \
18 <(nm --size-sort "$2" | sort -k3,3) | grep '^[<>]' | sort -k4,4 | \ 62 <(nm --size-sort "$2" | sort -k3,3) | grep '^[<>]' | sort -k4,4 | \
19 ( 63 do_bloatcheck
20 LASTNAME=
21 DELTA=0
22 TOTAL=0
23 OLD=0
24 NEW=0
25 STUFF=
26
27 printf "name% 46s% 10s% 11s\n" old new delta
28 echo "-----------------------------------------------------------------------"
29 while read a b c d
30 do
31 THISNAME=$(echo " $d" | sed 's/[.][0-9]*$//')
32
33 if [ "$LASTNAME" != "$THISNAME" ]
34 then
35 TOTAL=$(($TOTAL+$DELTA))
36 [ $DELTA -ne 0 ] && addline
37 LASTNAME="$THISNAME"
38 DELTA=0
39 OLD=0
40 NEW=0
41 fi
42
43 SIZE=$(printf "%d" "0x$b")
44 if [ "$a" == "<" ]
45 then
46 OLD=$(($OLD+$SIZE))
47 SIZE=$((-1*$SIZE))
48 else
49 NEW=$(($NEW+$SIZE))
50 fi
51 DELTA=$(($DELTA+$SIZE))
52 done
53
54 TOTAL=$(($TOTAL+$DELTA))
55 [ $DELTA -ne 0 ] && addline
56
57 echo "$STUFF" | sort -k4,4nr
58 echo "-----------------------------------------------------------------------"
59 printf "% 71d total\n" "$TOTAL"
60 )