summaryrefslogtreecommitdiffstats
path: root/scripts/sort-config
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/sort-config')
-rwxr-xr-xscripts/sort-config226
1 files changed, 0 insertions, 226 deletions
diff --git a/scripts/sort-config b/scripts/sort-config
deleted file mode 100755
index 399709f18..000000000
--- a/scripts/sort-config
+++ /dev/null
@@ -1,226 +0,0 @@
-#!/bin/bash
-
-FC=($(fedpkg verrel | awk -F. '{print $NF}'))
-
-SRC=($(ls config-* 2>/dev/null))
-
-TGT=($(ls kernel-*.$FC/linux-*.$2/configs/kernel-*-*.config \
- kernel-*.$FC/linux-*.$2/configs/kernel-*-*-debug.config 2>/dev/null))
-TGT1=(${TGT[*]#kernel-*.$FC/linux-*.$2/configs/kernel-*-})
-
-ALL_OPTS="cdfimn"
-
-if [ $# -lt 2 ] ; then
- echo -e "Usage:\n $(basename $0) [-$ALL_OPTS] input target\n"
- echo -e " Sort input config file into the same order as the target\n"
- echo -e " -c: insert comments about non-matching/impossible items"
- echo -e " -d: show raw unsorted output with extra debug text"
- echo -e " -f: force output to match what is in the target config,"
- echo -e " and/or remove impossible config items"
- echo -e " -i: find impossible config items"
- echo -e " -m: find changed config items"
- echo -e " -n: do not sort output\n"
- echo -e " input: source config file" ' [' "${SRC[*]#config-}" ']\n'
- echo -e " target: output arch name" ' [' "${TGT1[*]%.config}" ']\n'
- exit 1
-fi
-
-while getopts "$ALL_OPTS" OPTION ; do
-case $OPTION in
-c)
- ADDCOMMENT=1 ;;
-d)
- DEBUG=1 ;;
-f)
- FORCE=1 ;;
-i)
- FIND_IMPOSS=1 ;;
-m)
- FIND_CHANGED=1 ;;
-n)
- NOSORT=1 ;;
-\?)
- exit 2 ;;
-esac
-done
-
-if [ "$FORCE" -a "$ADDCOMMENT" ] ; then
- echo "-f and -c options cannot be used together"
- exit 2
-fi
-
-shift $((OPTIND-1))
-
-TEMPFILES="xx00 xx01 xx98 xx99"
-TEMPLEFT=
-for FILE in $TEMPFILES ; do
- [ -f "$FILE" ] && TEMPLEFT="Y"
-done
-if [ "$TEMPLEFT" ] ; then
- echo "WARNING! Output files named xx?? already exist." >&2
- read -p "Press <Enter> to erase files, or Ctrl-C to exit..."
- echo >&2
-fi
-rm -f $TEMPFILES
-
-SRCFILE=config-$1
-[ ! -f $SRCFILE ] && echo "Input file" $SRCFILE "missing" && exit 2
-
-TGTFILE=kernel-*.$FC/linux-*.$2/configs/kernel-*-$2.config
-[ ! -f $TGTFILE ] && echo "No target file matching" $TGTFILE "exists" && exit 2
-
-[ "$FIND_IMPOSS" ] && \
- find kernel-*.$FC/*.$2 -name Kconfig\* -type f \
- | xargs egrep -s -h '^[[:space:]]*(menu)?config[[:space:]]+' \
- | sed -r 's/^[[:space:]]*(menu)?config[[:space:]]+/CONFIG_/' \
- | sort | uniq >xx98
-
-extract_optname() {
- # extract the option name from $TEXT, setting $OPTNAME
- OPTNAME=
- if [ "${TEXT:0:7}" = "CONFIG_" ] ; then
- OPTNAME=${TEXT%%=*}
- elif [ "${TEXT:0:9}" = "# CONFIG_" ] ; then
- OPTNAME=${TEXT%" is not set"}
- OPTNAME=${OPTNAME#\# }
- fi
-}
-
-print_saved_comments() {
- 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
-}
-
-assign_line_number() {
- # use input line numbers if not sorting
- [ "$NOSORT" ] && LINE=$IN
- # make sure it has a line number
- [ -z "$LINE" ] && LINE=999999
-}
-
-IX=0
-IN=0
-declare -a SAVECOMMENT
-
-cat ${SRCFILE} | {
-while read TEXT ; do
-
- LINE=
- COMMENT=
-
- # replace empty lines
- [ -z "$TEXT" ] && TEXT='//'
-
- if [ "${TEXT:0:7}" = "CONFIG_" -o "${TEXT:0:9}" = "# CONFIG_" ] ; then
-
- LINE=$(grep -n "^$TEXT" $TGTFILE | head -1 | cut -f 1 -d ':')
- if [ -z "$LINE" ] ; then
- [ "$DEBUG" ] && echo "nofind ->" "$TEXT"
-
- extract_optname
- if [ "$OPTNAME" ] ; then
-
- if [ "$FIND_CHANGED" ] ; then
- for FINDTEXT in "^${OPTNAME}=" "^# ${OPTNAME} is not set" ; do
- if [ -z "$LINE" ] ; then
- [ "$DEBUG" ] && echo "looking for ->" "$FINDTEXT"
- LINE=$(grep -n "$FINDTEXT" $TGTFILE | head -1 | cut -f 1 -d ':')
- if [ "$LINE" ] ; then
- CHANGED=$(grep "$FINDTEXT" $TGTFILE | head -1)
- if [ "$FORCE" ] ; then
- TEXT=$CHANGED
- [ "$DEBUG" ] && echo 'forced ->' "$TEXT"
- else
- if [ "$ADDCOMMENT" ] ; then
- if [ ${CHANGED:0:1} = '#' ] ; then
- NEWOPT="not set"
- else
- NEWOPT=${CHANGED#$OPTNAME}
- fi
- COMMENT="# -- Next option changed to \"${NEWOPT}\" at target line $LINE --"
- fi
- fi
- fi
- fi
- done
- fi
-
- if [ "$FIND_IMPOSS" -a -z "$LINE" -a -z "$COMMENT" ] ; then
- POSSIBLE=$(grep -n "^$OPTNAME" xx98)
- if [ -z "$POSSIBLE" ] ; then
- if [ "$ADDCOMMENT" ] ; then
- COMMENT="# -- Next option is impossible --"
- elif [ "$FORCE" ] ; then
- [ "$DEBUG" ] && echo 'impossible ->' "$TEXT"
- TEXT=""
- fi
- fi
- fi
-
- fi
-
- fi
-
- else
- # not a config variable
- COMMENT="$TEXT"
- TEXT=
- fi
-
- [ "$DEBUG" -a "$COMMENT" ] && echo "comment ->" "$LINE" "$COMMENT"
- [ "$DEBUG" -a "$TEXT" ] && echo "text ->" "$LINE" "$TEXT"
-
- if [ "$TEXT" ] ; then
-
- assign_line_number
-
- # print the saved comments first
- print_saved_comments
- # now print the latest comment and text
- [ "$COMMENT" ] && echo "$LINE":"$COMMENT"
- echo "$LINE":"$TEXT"
-
- elif [ "$COMMENT" ] ; then
-
- # no output yet, save the comment
- SAVECOMMENT[$IX]="$COMMENT"
- let IX++
- [ "$DEBUG" ] && echo 'savecomment (#'${IX}')'
-
- fi
-
- let IN++
-
-done
-# flush the buffers
-assign_line_number
-print_saved_comments
-[ "$DEBUG" ] && echo "$IN lines read from input"
-} >xx99
-
-if [ "$DEBUG" ] ; then
- # just show the raw output with debug info, then exit
- cat xx99
-else
-
- # split output into two files, for matched and unmatched items
- cat xx99 | sort -s -t ":" -k 1g | csplit -k -s - /^999999/ 2>/dev/null
-
- cat xx00 | cut -f 2- -d ':' | sed 's/^\/\/$//'
- if [ -s xx01 ] ; then
- echo
- echo '# ------------ UNMATCHED OPTIONS ------------'
- echo
- cat xx01 | cut -f 2- -d ':' | sed 's/^\/\/$//'
- fi
-
-fi
-
-rm -f $TEMPFILES