From b388bf58455991c7d817261acf2364e4cd342517 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Wed, 19 Mar 2008 14:08:45 +0100 Subject: [PATCH] Added a mechanism for overriding configuration settings from the command line. --- bin/ev | 5 ++++- bin/lib | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/bin/ev b/bin/ev index a618907..7d5ecc3 100755 --- a/bin/ev +++ b/bin/ev @@ -9,8 +9,11 @@ if [ ! -f config -o ! -f bin/lib ] ; then fi . bin/lib . config +while parse-cmdline "$1" ; do + shift +done -[ -n "$2" -a -z "$4" ] || die "Usage: ev []" +[ -n "$2" -a -z "$4" ] || die "Usage: ev [=] []" CONTESTANT=$1 PROBLEM=$2 dir-init diff --git a/bin/lib b/bin/lib index ae5c421..9c07465 100644 --- a/bin/lib +++ b/bin/lib @@ -488,3 +488,19 @@ function fpc-exit-code 216) echo -n "Segmentation fault" ;; esac } + +# A helper function for parsing of command-line overrides of variables + +function parse-cmdline +{ + if [ "${1#*=}" != "$1" ] ; then + local var=${1%%=*} + local val=${1#*=} + echo >&2 "WANT: {$var} {$val}" + eval $var="'$val'" + echo >&2 "HAVE: ${!var}" + return 0 + else + return 1 + fi +} -- 2.39.2