From 9700827d26dbb59bb800c9e5ab39f0bc5c598fbd Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Fri, 26 Dec 2014 13:27:13 +0200 Subject: [PATCH 14/15] 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 36a0141..00c6846 100644 --- a/lenses/shellvars.aug +++ b/lenses/shellvars.aug @@ -110,7 +110,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 e7fad5a..4f52205 100644 --- a/lenses/tests/test_shellvars.aug +++ b/lenses/tests/test_shellvars.aug @@ -609,7 +609,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'" } } @@ -620,6 +622,11 @@ bar\n" = { "@arg" = "foo \ bar" } } + { "@command" = "command" + { "abc" = "def" } + { "ghi" = "\"jkl mno\"" } + { "@arg" = "arg1 arg2" } + } (* Local Variables: *) (* mode: caml *) -- 2.1.0