From e6ca8eadfebbddf87b2ea356db7cbd285ae0f07f Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Fri, 26 Dec 2014 13:27:13 +0200 Subject: [PATCH 11/11] Shellvars: allow command-specific environment variables --- lenses/shellvars.aug | 4 +++- lenses/tests/test_shellvars.aug | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lenses/shellvars.aug b/lenses/shellvars.aug index 07c7a52..9ee0d05 100644 --- a/lenses/shellvars.aug +++ b/lenses/shellvars.aug @@ -97,7 +97,9 @@ module Shellvars = let command = let reserved_key = /exit|shift|return|ulimit|unset|export|source|\.|if|for|select|while|until|then|else|fi|done|case/ in let word = /[A-Za-z0-9_.-\/]+/ - in Util.indent . label "@command" . store (word - reserved_key) + in Util.indent . label "@command" + . [ key key_re . eq . store anyquot . Sep.space . del /(\\\\\n[ \t]*)?/ "" ]* + . store (word - reserved_key - /zzz/) . [ Sep.space . label "@arg" . sto_to_semicol]? (************************************************************************ diff --git a/lenses/tests/test_shellvars.aug b/lenses/tests/test_shellvars.aug index 68a77ad..dd4132e 100644 --- a/lenses/tests/test_shellvars.aug +++ b/lenses/tests/test_shellvars.aug @@ -552,7 +552,9 @@ esac\n" = test Shellvars.lns get "echo foobar 'and this is baz' /usr/local/bin/myscript.sh with args echo foo \ -bar\n" = +bar +abc=def \ + ghi=\"jkl mno\" command arg1 arg2\n" = { "@command" = "echo" { "@arg" = "foobar 'and this is baz'" } } @@ -563,6 +565,11 @@ bar\n" = { "@arg" = "foo \ bar" } } + { "@command" = "command" + { "abc" = "def" } + { "ghi" = "\"jkl mno\"" } + { "@arg" = "arg1 arg2" } + } (* Local Variables: *) (* mode: caml *) -- 1.9.3