From 92cb58023d997c63b641185a4b91547bee9f2dfb Mon Sep 17 00:00:00 2001 From: Werner Almesberger Date: Tue, 30 Nov 2010 18:49:16 -0300 Subject: [PATCH] dsv: make "dsv setup" accept spaces in names and aliases - dsv (set_value): store name and alias with double quotes, to protect spaces - dsv (flush): access name and alias via "eval" --- dsv/dsv | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/dsv/dsv b/dsv/dsv index c3d963a..ed24285 100755 --- a/dsv/dsv +++ b/dsv/dsv @@ -49,19 +49,20 @@ up() flush() { - [ -z "$name" ] && return + eval nm=$name + [ -z "$nm" ] && return if [ -z "$url" ]; then - echo "$name: no URL" 2>&1 + echo "$nm: no URL" 2>&1 exit 1 fi - ds=$name-`basename "$url"` + ds=$nm-`basename "$url"` mkdir -p $DSV_DIR if [ ! -r "$DSV_DIR/$ds" ]; then wget -nv -O "$DSV_DIR/$ds" "$url" # @@@ should handle error fi - for n in $name $alias; do - echo "$ds" >$DSV_DIR/dsv-$n + eval for n in $name $alias\; do \ + echo '"$ds"' '>$DSV_DIR/dsv-$n'\; \ done name= alias= @@ -73,8 +74,8 @@ set_value() { case "$tag" in N:|n:) flush - name=$value;; - A:|a:) alias="$alias $value";; + name="\"$value\"";; + A:|a:) alias="$alias \"$value\"";; D:|d:) url=$value;; "") ;; # first iteration