4 SPECFILE="${SPECFILE%%/*}"
5 SPECFILE="$(basename $SPECFILE .spec)"
6 SPEC="$SPECFILE/$SPECFILE.spec"
7 CLEANBUILDDIR="$HOME/PLD"
9 if [ $# -ne 1 -o ! -d "$SPECFILE" -o ! -f "$SPEC" ]; then
10 echo "spec file missing"
16 # vim like diff colourization
17 LC_ALL=en_US.UTF-8 gawk ' {
20 for ( i = 2; i in S; i++ ) {
21 spaces = 7 - ( (length( $0 ) - 1) % 8 );
22 $0 = $0 "\xE2\x9E\x94";
23 for ( y = 0; y < spaces; y++ )
24 $0 = $0 "\xE2\x87\xBE";
27 gsub( /\033/, "\033[44m^[\033[49m" );
29 if ( sub( /^ /, "" ) )
31 sub( /(\xE2\x9E\x94(\xE2\x87\xBE)*| )+$/, "\033[31;41m&\033[39;49m" );
32 gsub( /\xE2\x9E\x94(\xE2\x87\xBE)*/, "\033[7m&\033[27m" );
33 gsub( /\xE2\x87\xBE/, " " );
35 gsub( /\007/, "\033[44m^G\033[49m" );
36 gsub( /\r/, "\033[44m^M\033[49m" );
38 /^(Index:|diff|---|\+\+\+) / { $0 = "\033[32m" $0 }
39 /^@@ / { $0 = "\033[33m" $0 }
40 /^-/ { $0 = "\033[35m" $0 }
41 /^+/ { $0 = "\033[36m" $0 }
42 { $0 = $0 "\033[0m"; print }
46 cvs -z9 diff -u $SPECFILE | diffcol
51 if [ "$ans" != "y" ]; then
55 sed '/^# AUTO: /d' -i "$SPEC"
56 SIMPLE_DIFF="$(cvs -z9 diff "$SPEC")"
60 diff="$(cvs -z9 diff -u $SPEC)"
62 echo "$diff" | diffcol
64 ver=$(echo "$diff" | awk '
65 /^\+Version/ { ver = $2 }
66 /^\+%define[ \t]+[_a-zA-Z0-9]*ver/ { ver = $3 }
69 rel=$(echo "$diff" | awk '
70 /^\+Release/ { rel = $2 }
71 /^\+%define[ \t]+_?rel/ { rel = $3 }
75 add=$(echo "$diff" | awk '
76 function s( n ) { sub(/}/,"",n); return n; }
77 /^\+(%{[a-zA-Z0-9_]+:)?BuildRequires/ { add[ s( $2 ) ] = 1; };
78 /^-(%{[a-zA-Z0-9_]+:)?BuildRequires/ { del[ s( $2 ) ] = 1; };
79 END { for ( n in add ) { if ( !del[ n ] ) print n; } }' |
80 perl -p -e 'chomp; push @a, $_; undef $_; END { print join ", ", sort @a }
83 del=$(echo "$diff" | awk '
84 function s( n ) { sub(/}/,"",n); return n; }
85 /^\+(%{[a-zA-Z0-9_]+:)?BuildRequires/ { add[ s( $2 ) ] = 1; };
86 /^-(%{[a-zA-Z0-9_]+:)?BuildRequires/ { del[ s( $2 ) ] = 1; };
87 END { for ( n in del ) { if ( !add[ n ] ) print n; } }' |
88 perl -p -e 'chomp; push @a, $_; undef $_; END { print join ", ", sort @a }
94 [ -n "$ver" ] && msg="$msg- updated to: $ver$n"
95 [ -n "$rel" ] && msg="$msg- release: $rel$n"
96 [ -n "$add" ] && msg="$msg- BR: $add$n"
97 [ -n "$del" ] && msg="$msg- dropped BR: $del$n"
104 if [ "$ans" != "y" ]; then
108 export COMMIT_MESSAGE="$msg"
109 export COMMIT_PACKAGES="$SPECFILE"
110 export VISUAL="$PWD/civim"
111 cvs -z9 ci "$SPECFILE"
113 [ -n "$CLEANBUILDDIR" ] && rm -f $CLEANBUILDDIR/installed/$SPECFILE