#!/bin/sh
# Bruce Barnett
# This script will change the specified resource
#
# Usage: Resource [-p] [resource[:] value]
# where RESOURCE is set to VALUE
# if -p is given, change the value permanently.
# if -p is given, but no resource specified, save all
#
# specify default filename
XD="$HOME/.Xdefaults"
# Is there a -p?
if [ $# -gt 0 ] ;
then
case "$1" in
-p) PERM=1;shift;;
esac
fi
# must have 0 or 2 arguments now, else error
if [ $# -eq 1 -o $# -gt 2 ] ; then
echo "Usage: `basename $0 ` [-p] [resource[:] value]"
exit 1;
fi
if [ $# -eq 2 ] ; then
# the colon is optional - this removes it
RESOURCE=`echo $1 | tr -d :`
VALUE=$2;
# Make the change
# echo "echo $RESOURCE $VALUE | xrdb -merge"
echo $RESOURCE: $VALUE | xrdb -merge
fi
# Is this a permanent change?
if [ $PERM ] ; then
# echo "xrdb -edit $XD -backup .b"
xrdb -edit $XD -backup .b
# Note that the backup fill will be created even if
# the value does not change.
# therefore - compare the original backup file with the new file
# if no difference, delete the backup file
# else rename the backup file to .Xdefaults.old.1
# and rename .Xdefaults.old.1 to .Xdefaults.old.2
diff $XD $XD.b >/dev/null && {
# if identical, delete .Xdefaults.b
/bin/rm $XD.b
} || {
# different files - keep 2 backups
# you can easily make it keep 3, 4 or 5 backups.
# .Xdefaults.old.1 may not exist
# if it does, then rename it
[ -f $XD.old.1 ] && /bin/mv $XD.old.1 $XD.old.2
/bin/mv $XD.b $XD.old.1
}
fi
AskApache Web Development