rpms/kernel/devel/scripts sort-config,NONE,1.1
Chuck Ebbert
cebbert at fedoraproject.org
Sun Aug 16 00:52:14 UTC 2009
- Previous message (by thread): rpms/Django/F-11 .cvsignore, 1.12, 1.13 Django.spec, 1.21, 1.22 sources, 1.12, 1.13
- Next message (by thread): rpms/Django/EL-5 .cvsignore, 1.10, 1.11 Django.spec, 1.13, 1.14 sources, 1.10, 1.11
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: cebbert
Update of /cvs/pkgs/rpms/kernel/devel/scripts
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32109/scripts
Added Files:
sort-config
Log Message:
add sort-config script
--- NEW FILE sort-config ---
#!/bin/bash
SRC=($(ls config-* 2>/dev/null))
TGT=($(ls kernel-*/linux-*.noarch/configs/kernel-2.6.*-*.config kernel-*/linux-*.noarch/configs/kernel-2.6.*-*-debug.config 2>/dev/null))
TGT1=(${TGT[*]#kernel-*/linux-*.noarch/configs/kernel-2.6.*-})
if [ $# -lt 2 ] ; then
echo -e "Usage: $(basename $0) [-d] input target"
echo -e "Sort input config file into the same order as the target"
echo -e " -d: show raw unsorted output with extra debug text"
echo -e " input: source config file" ' [' "${SRC[*]#config-}" ']'
echo -e " target: output arch name" ' [' "${TGT1[*]%.config}" ']'
exit 1
fi
if [ "$1" = "-d" ] ; then
DEBUG=1
shift
fi
if [ -f xx00 -o -f xx01 -o -f xx99 ] ; then
echo "WARNING! Output files named xx?? already exist."
read -p "Press <Enter> to erase files, or Ctrl-C to exit..."
fi
rm -f xx00 xx01 xx99
SRCFILE=config-$1
[ ! -f $SRCFILE ] && echo "Input file" $SRCFILE "missing" && exit 2
TGTFILE=kernel-*/linux-*.noarch/configs/kernel-2.6.*-$2.config
[ ! -f $TGTFILE ] && echo "No target file matching" $TGTFILE "exists" && exit 2
IX=0
declare -a SAVECOMMENT
cat ${SRCFILE} | while read TEXT ; do
LINE=
COMMENT=
[ -z "$TEXT" ] && TEXT='#'
if [ "${TEXT:0:7}" = "CONFIG_" -o "${TEXT:0:9}" = "# CONFIG_" ] ; then
LINE=$(grep -n "^$TEXT" $TGTFILE | head -1 | grep "$TEXT" | cut -f 1 -d ':')
if [ -z "$LINE" ] ; then
[ "$DEBUG" ] && echo "nofind ->" "$TEXT"
# see if option changed in output file
OPTNAME=
if [ "${TEXT:0:7}" = "CONFIG_" ] ; then
OPTNAME=${TEXT%%=*}
elif [ "${TEXT:0:9}" = "# CONFIG_" ] ; then
OPTNAME=${TEXT%"is not set"}
OPTNAME=${OPTNAME#\# }
fi
if [ "$OPTNAME" ] ; then
[ "$DEBUG" ] && echo "looking for ->" "$OPTNAME"
LINE=$(grep -n "$OPTNAME" $TGTFILE | head -1 | grep "$OPTNAME" | cut -f 1 -d ':')
[ "$LINE" ] && COMMENT="# -- Next line was changed by config rules in output at line $LINE"
fi
fi
else
COMMENT="$TEXT"
TEXT=
fi
[ "$DEBUG" -a "$COMMENT" ] && echo "comment ->" "$LINE" "$COMMENT"
[ "$DEBUG" -a "$TEXT" ] && echo "text ->" "$LINE" "$TEXT"
if [ "$TEXT" ] ; then
# we have output, make sure it has a line number
[ -z "$LINE" ] && LINE=999999
# print saved comments first
if [ $IX -gt 0 ] ; then
[ "$DEBUG" ] && echo " ->" $IX "comments were saved"
(( IX-- ))
for IX in $(seq 0 $IX) ; do
echo "$LINE":"${SAVECOMMENT[$IX]}"
done
unset SAVECOMMENT
IX=0
fi
[ "$COMMENT" ] && echo "$LINE":"$COMMENT"
echo "$LINE":"$TEXT"
else
# no output yet, save the comment
SAVECOMMENT[$IX]="$COMMENT"
[ "$DEBUG" ] && echo "savecomment ->" "$LINE" "${SAVECOMMENT[$IX]}"
(( IX++ ))
fi
done > xx99
if [ "$DEBUG" ] ; then
cat xx99
else
cat xx99 | sort -s -t ":" -k 1g | csplit -k -s - /^999999/ 2>/dev/null
cat xx00 | cut -f 2- -d ':'
if [ -s xx01 ] ; then
echo
echo '# ------------ UNMATCHED OPTIONS ------------'
echo
cat xx01 | cut -f 2- -d ':'
fi
fi
rm -f xx00 xx01 xx99
- Previous message (by thread): rpms/Django/F-11 .cvsignore, 1.12, 1.13 Django.spec, 1.21, 1.22 sources, 1.12, 1.13
- Next message (by thread): rpms/Django/EL-5 .cvsignore, 1.10, 1.11 Django.spec, 1.13, 1.14 sources, 1.10, 1.11
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list