mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
setval: Fix multi-word quotation marks and added -n switch
This commit is contained in:
parent
0bc4f57b46
commit
8a2f1d5f8d
1 changed files with 36 additions and 14 deletions
50
scripts/jcs
50
scripts/jcs
|
|
@ -1243,7 +1243,22 @@ usage() {
|
||||||
txtout "usage setval"
|
txtout "usage setval"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ $# != 3 ] ; then
|
NO_QUOTES=0
|
||||||
|
set -- `getopt hn $*`
|
||||||
|
while [ $1 != -- ] ; do
|
||||||
|
case $1 in
|
||||||
|
-n)
|
||||||
|
NO_QUOTES=1;;
|
||||||
|
-h)
|
||||||
|
usage; exit 0;;
|
||||||
|
*)
|
||||||
|
usage; exit 1;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
|
||||||
|
if [ $# -lt 3 ] ; then
|
||||||
usage
|
usage
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
@ -1256,30 +1271,36 @@ if [ ! -w "$1" ] ; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -n " + $1: set $2 to $3 ... "
|
|
||||||
|
|
||||||
|
|
||||||
MYNAME=`basename $0`
|
MYNAME=`basename $0`
|
||||||
WD=`/bin/pwd`
|
WD=`/bin/pwd`
|
||||||
DATE=`date`
|
DATE=`date`
|
||||||
test -e "$1".$MYNAME && rm "$1".$MYNAME
|
FILE=$1
|
||||||
grep "$2" "$1" >/dev/null 2>&1 || cat << EOF >> "$1"
|
KEY=$2
|
||||||
|
shift 2
|
||||||
|
VALUES="$*"
|
||||||
|
test -e "$FILE".$MYNAME && rm "$FILE".$MYNAME
|
||||||
|
grep "$KEY" "$FILE" >/dev/null 2>&1 || cat << EOF >> "$FILE"
|
||||||
#
|
#
|
||||||
# added by $MYNAME on $DATE
|
# added by $MYNAME on $DATE
|
||||||
# called from within $WD
|
# called from within $WD
|
||||||
#
|
#
|
||||||
$2="dummy"
|
$KEY="dummy"
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if echo "$3" grep -e " \|\t" >/dev/null 2>&1 ; then
|
if [ -n "` echo "$VALUES" | grep -e ' \|\t'`" -a "$NO_QUOTES" != 1 ] ; then
|
||||||
# put multi-word value in quotes
|
# put multi-word value in quotes
|
||||||
# but delete all quotes before so we don't end up
|
# but delete all quotes before so we don't end up
|
||||||
# with a ""quotation"".
|
# with a ""quotation"".
|
||||||
VAL=\"`echo $3 | tr -d "\""`\"
|
VAL=\"`echo $VALUES | tr -d "\""`\"
|
||||||
else
|
else
|
||||||
VAL="$3"
|
VAL="$VALUES"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo -n " + $FILE: set $KEY to $VAL ... "
|
||||||
|
|
||||||
|
|
||||||
awk '
|
awk '
|
||||||
BEGIN {
|
BEGIN {
|
||||||
FS = "="
|
FS = "="
|
||||||
|
|
@ -1304,14 +1325,14 @@ END {
|
||||||
print "changed " (occ ? occ " occurence: " changed : "nothing.");
|
print "changed " (occ ? occ " occurence: " changed : "nothing.");
|
||||||
exit occ
|
exit occ
|
||||||
} ' \
|
} ' \
|
||||||
key="$2" val="$VAL" outfile="$1.$MYNAME" "$1"
|
key="$KEY" val="$VAL" outfile="$FILE.$MYNAME" "$FILE"
|
||||||
|
|
||||||
if [ ! $? = 0 ] ; then
|
if [ ! $? = 0 ] ; then
|
||||||
mv "$1".$MYNAME "$1"
|
mv "$FILE".$MYNAME "$FILE"
|
||||||
mkdir -p $cfg_jcs_log_dir
|
mkdir -p $cfg_jcs_log_dir
|
||||||
echo "$1" >> $cfg_jcs_log_dir/changed_files.log
|
echo "$FILE" >> $cfg_jcs_log_dir/changed_files.log
|
||||||
else
|
else
|
||||||
rm "$1".$MYNAME
|
rm "$FILE".$MYNAME
|
||||||
fi
|
fi
|
||||||
} # end function jcs_setval
|
} # end function jcs_setval
|
||||||
|
|
||||||
|
|
@ -1751,7 +1772,8 @@ usage: jcs newdir [-h] [-t template_directory] target_directory
|
||||||
--<<<-- usage newdir --
|
--<<<-- usage newdir --
|
||||||
|
|
||||||
-->>>-- usage setval --
|
-->>>-- usage setval --
|
||||||
usage : jcs setval config-file key value
|
usage : jcs setval [-n] config-file key value
|
||||||
|
options: -n: don't put quotation marks around a multiword value
|
||||||
--<<<-- usage setval --
|
--<<<-- usage setval --
|
||||||
|
|
||||||
-->>>-- usage setvals --
|
-->>>-- usage setvals --
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue