jcs: Setval added support for keys with spaces

This commit is contained in:
Jan Lindemann 2002-07-23 12:50:28 +00:00 committed by Jan Lindemann
commit 7dd984ccf3

View file

@ -1247,11 +1247,11 @@ if [ $# != 3 ] ; then
usage usage
exit 0 exit 0
fi fi
if [ ! -e $1 ] ; then if [ ! -e "$1" ] ; then
echo $1 not found. Exiting. echo $1 not found. Exiting.
exit 1 exit 1
fi fi
if [ ! -w $1 ] ; then if [ ! -w "$1" ] ; then
echo $1 is not a writable file. Exiting. echo $1 is not a writable file. Exiting.
exit 1 exit 1
fi fi
@ -1262,8 +1262,8 @@ 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 test -e "$1".$MYNAME && rm "$1".$MYNAME
grep $2 $1 >/dev/null 2>&1 || cat << EOF >> $1 grep "$2" "$1" >/dev/null 2>&1 || cat << EOF >> "$1"
# #
# added by $MYNAME on $DATE # added by $MYNAME on $DATE
# called from within $WD # called from within $WD
@ -1280,26 +1280,38 @@ if echo "$3" grep -e " \|\t" >/dev/null 2>&1 ; then
else else
VAL="$3" VAL="$3"
fi fi
awk 'BEGIN {FS = "="} awk '
$1 == key { if ($2$3$4$5$6$7$8$9$10$11$12$13$14$15$16 != val) { BEGIN {
FS = "="
}
{
left=$1
sub(/^ */,"",left)
sub(/ *$/,"",left)
if (left == key) {
if ($2$3$4$5$6$7$8$9$10$11$12$13$14$15$16 != val) {
print key"="val >> outfile print key"="val >> outfile
changed = changed $2 "-->" val" " changed = changed $2 "-->" val" "
++occ ++occ
next next
} }
} }
{ print >> outfile } {
END { print "changed " (occ ? occ " occurence: " changed : "nothing."); print >> outfile
exit occ } }
' \ }
key=$2 val="$VAL" outfile="$1.$MYNAME" "$1" END {
print "changed " (occ ? occ " occurence: " changed : "nothing.");
exit occ
} ' \
key="$2" val="$VAL" outfile="$1.$MYNAME" "$1"
if [ ! $? = 0 ] ; then if [ ! $? = 0 ] ; then
mv $1.$MYNAME $1 mv "$1".$MYNAME "$1"
mkdir -p $cfg_jcs_log_dir mkdir -p $cfg_jcs_log_dir
echo $1 >> $cfg_jcs_log_dir/changed_files.log echo "$1" >> $cfg_jcs_log_dir/changed_files.log
else else
rm $1.$MYNAME rm "$1".$MYNAME
fi fi
} # end function jcs_setval } # end function jcs_setval