#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-RCSID='$Id$'
-r=${RCSID#* * }
-rev=${r%% *}
-VERSION="v0.35/$rev"
+VERSION="1.514"
VERSIONSTRING="\
Adapter adapts .spec files for PLD Linux.
-$VERSION (C) 1999-2009 Free Penguins".
+v$VERSION (C) 1999-2016 Free Penguins".
PROGRAM=${0##*/}
-dir=$(d=$0; [ -L "$d" ] && d=$(readlink "$d"); dirname "$d")
+dir=$(d=$0; [ -L "$d" ] && d=$(readlink -f "$d"); dirname "$d")
adapter=$dir/adapter.awk
-usage="Usage: $PROGRAM [FLAGS] SPECFILE
+usage="Usage: $PROGRAM [FLAGS] SPECFILEs
-s|--no-sort|--skip-sort
skip BuildRequires, Requires sorting
t=$(getopt -o hsomdaV --long help,version,sort,sort-br,no-macros,skip-macros,skip-desc,skip-defattr -n "$PROGRAM" -- "$@") || exit $?
eval set -- "$t"
-while true; do
+while :; do
case "$1" in
-h|--help)
- echo 2>&1 "$usage"
+ echo 2>&1 "$usage"
exit 1
;;
-s|--no-sort|--skip-sort)
diffcol()
{
- # vim like diff colourization
- sed -e '
- s,\e,\e[44m^[\e[49m,g;
- s,\a,\e[44m^G\e[49m,g;
- s,^\(Index:\|diff\|---\|+++\) .*$,\e[32m&,;
- s,^@@ ,\e[33m&,g;
- s,^-,\e[35m&,;
- s,^+,\e[36m&,;
- s,\r,\e[44m^M\e[49m,g;
- s, , ,g;
- s,\([^[:space:]]\)\([[:space:]]\+\)$,\1\e[41m\2\e[49m,g;
- s,$,\e[0m,
- ' "$@"
+ # vim like diff colourization
+LC_ALL=en_US.UTF-8 gawk ' {
+ split( $0, S, /\t/ );
+ $0 = S[ 1 ];
+ for ( i = 2; i in S; i++ ) {
+ spaces = 7 - ( (length( $0 ) - 1) % 8 );
+ $0 = $0 "\xE2\x9E\x94";
+ for ( y = 0; y < spaces; y++ )
+ $0 = $0 "\xE2\x87\xBE";
+ $0 = $0 S[ i ];
+ }
+ gsub( /\033/, "\033[44m^[\033[49m" );
+ cmd = "";
+ if ( sub( /^ /, "" ) )
+ cmd = " ";
+ sub( /(\xE2\x9E\x94(\xE2\x87\xBE)*| )+$/, "\033[31;41m&\033[39;49m" );
+ gsub( /\xE2\x9E\x94(\xE2\x87\xBE)*/, "\033[7m&\033[27m" );
+ gsub( /\xE2\x87\xBE/, " " );
+ # uncomment if you do not like utf-8 arrow
+ # gsub( /\xE2\x9E\x94/, ">" );
+ $0 = cmd $0;
+ gsub( /\007/, "\033[44m^G\033[49m" );
+ gsub( /\r/, "\033[44m^M\033[49m" );
+}
+/^(Index:|diff|---|\+\+\+) / { $0 = "\033[32m" $0 }
+/^@@ / { $0 = "\033[33m" $0 }
+/^-/ { $0 = "\033[35m" $0 }
+/^+/ { $0 = "\033[36m" $0 }
+{ $0 = $0 "\033[0m"; print }
+' "$@"
}
diff2hunks()
{
- # diff2hunks orignally by dig
- perl -e '
+ # diff2hunks orignally by dig
+ perl -e '
#! /usr/bin/perl -w
use strict;
_desktopdir
_pixmapsdir
_javadir
+ _pkgconfigdir
+ _npkgconfigdir
+ _localedir
perl_sitearch
perl_archlib
py_scriptdir
py_ver
+ py3_sitescriptdir
+ py3_sitedir
+ py3_scriptdir
+ py3_ver
+
ruby_archdir
- ruby_ridir
- ruby_rubylibdir
+ ruby_libdir
+ ruby_sitedir
ruby_sitearchdir
ruby_sitelibdir
+ ruby_vendordir
+ ruby_vendorarchdir
+ ruby_vendorlibdir
+ ruby_rubylibdir
ruby_rdocdir
+ ruby_ridir
+ ruby_specdir
php_pear_dir
php_data_dir
tmpdir
+
+ systemdunitdir
+ systemduserunitdir
+ systemdtmpfilesdir
"
eval_expr=""
for macro in $macros; do
}
adapterize() {
+ local SPECFILE="$1"
+ [ -f "$SPECFILE" ] || SPECFILE="$(basename $SPECFILE .spec).spec"
+
local workdir
- workdir=$(mktemp -d ${TMPDIR:-/tmp}/adapter-XXXXXX) || exit
+ workdir=$(mktemp -d ${TMPDIR:-/tmp}/adapter-XXXXXX) || exit $?
awk=gawk
- local tmp=$workdir/$(basename $SPECFILE) || exit
+ local tmp=$workdir/$(basename $SPECFILE) || exit $?
import_rpm_macros
- LC_ALL=en_US.UTF-8 $awk -f $adapter $SPECFILE > $tmp || exit
+ LC_ALL=en_US.UTF-8 $awk -f $adapter $SPECFILE > $tmp || exit $?
if [ "$outputonly" = 1 ]; then
cat $tmp
cat $tmp.diff
fi
else
- echo "The SPEC is perfect ;)"
+ echo "The spec $SPECFILE is perfect ;)"
fi
rm -rf $workdir
}
-SPECFILE="$1"
-[ -f "$SPECFILE" ] || SPECFILE="$(basename $SPECFILE .spec).spec"
-
-if [ $# -ne 1 -o ! -f "$SPECFILE" ]; then
+if [ $# -eq 0 ]; then
echo "$usage"
exit 1
fi
-adapterize
+for SPECFILE in "$@"; do
+ adapterize $SPECFILE
+done
# vim: ts=4:sw=4