mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 20:13:32 +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"
|
||||
}
|
||||
|
||||
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
|
||||
exit 0
|
||||
fi
|
||||
|
|
@ -1256,30 +1271,36 @@ if [ ! -w "$1" ] ; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
echo -n " + $1: set $2 to $3 ... "
|
||||
|
||||
|
||||
MYNAME=`basename $0`
|
||||
WD=`/bin/pwd`
|
||||
DATE=`date`
|
||||
test -e "$1".$MYNAME && rm "$1".$MYNAME
|
||||
grep "$2" "$1" >/dev/null 2>&1 || cat << EOF >> "$1"
|
||||
FILE=$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
|
||||
# called from within $WD
|
||||
#
|
||||
$2="dummy"
|
||||
$KEY="dummy"
|
||||
|
||||
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
|
||||
# but delete all quotes before so we don't end up
|
||||
# with a ""quotation"".
|
||||
VAL=\"`echo $3 | tr -d "\""`\"
|
||||
VAL=\"`echo $VALUES | tr -d "\""`\"
|
||||
else
|
||||
VAL="$3"
|
||||
VAL="$VALUES"
|
||||
fi
|
||||
|
||||
echo -n " + $FILE: set $KEY to $VAL ... "
|
||||
|
||||
|
||||
awk '
|
||||
BEGIN {
|
||||
FS = "="
|
||||
|
|
@ -1304,14 +1325,14 @@ END {
|
|||
print "changed " (occ ? occ " occurence: " changed : "nothing.");
|
||||
exit occ
|
||||
} ' \
|
||||
key="$2" val="$VAL" outfile="$1.$MYNAME" "$1"
|
||||
key="$KEY" val="$VAL" outfile="$FILE.$MYNAME" "$FILE"
|
||||
|
||||
if [ ! $? = 0 ] ; then
|
||||
mv "$1".$MYNAME "$1"
|
||||
mv "$FILE".$MYNAME "$FILE"
|
||||
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
|
||||
rm "$1".$MYNAME
|
||||
rm "$FILE".$MYNAME
|
||||
fi
|
||||
} # end function jcs_setval
|
||||
|
||||
|
|
@ -1751,7 +1772,8 @@ usage: jcs newdir [-h] [-t template_directory] target_directory
|
|||
--<<<-- usage newdir --
|
||||
|
||||
-->>>-- 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 setvals --
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue