diff options
Diffstat (limited to 'main/augeas/0007-Shellvars-Allow-almost-any-command.patch')
-rw-r--r-- | main/augeas/0007-Shellvars-Allow-almost-any-command.patch | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/main/augeas/0007-Shellvars-Allow-almost-any-command.patch b/main/augeas/0007-Shellvars-Allow-almost-any-command.patch new file mode 100644 index 0000000000..3775fc5927 --- /dev/null +++ b/main/augeas/0007-Shellvars-Allow-almost-any-command.patch @@ -0,0 +1,82 @@ +From 1fbc9768290383ee6de28416ab033ec07831ae95 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= <raphink@gmail.com> +Date: Thu, 24 Apr 2014 16:10:50 +0200 +Subject: [PATCH 07/10] Shellvars: Allow (almost) any command + + Note: this may have edge effects in recursive sublenses + that augparse cannot check. +--- + NEWS | 1 + + lenses/shellvars.aug | 7 +++++++ + lenses/tests/test_shellvars.aug | 11 +++++++++++ + 3 files changed, 19 insertions(+) + +diff --git a/NEWS b/NEWS +index 73b5332..4501226 100644 +--- a/NEWS ++++ b/NEWS +@@ -57,6 +57,7 @@ + conditions (GH issue #118) + Support $(( .. )) arithmetic expansion in variable + assignment, RHBZ#1100550 ++ Allow (almost) any command + * Simplevars: Support flags and empty values + * Sshd: Allow all types of entries in Match groups (GH issue #75) + * Sssd: Allow ; for comments +diff --git a/lenses/shellvars.aug b/lenses/shellvars.aug +index 0c25ff9..3b98c23 100644 +--- a/lenses/shellvars.aug ++++ b/lenses/shellvars.aug +@@ -94,6 +94,11 @@ module Shellvars = + . Util.del_str "return" + . ( Util.del_ws_spc . store Rx.integer )? + ++ 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) ++ . [ Sep.space . label "@arg" . sto_to_semicol]? + + (************************************************************************ + * Group: CONDITIONALS AND LOOPS +@@ -158,6 +163,7 @@ module Shellvars = + | entry_eol_item bare_export + | entry_eol_item builtin + | entry_eol_item return ++ | entry_eol_item command + + let entry_noeol = + let entry_item (item:lens) = [ item ] in +@@ -167,6 +173,7 @@ module Shellvars = + | entry_item bare_export + | entry_item builtin + | entry_item return ++ | entry_item command + + let rec rec_entry = + let entry = comment | entry_eol | rec_entry in +diff --git a/lenses/tests/test_shellvars.aug b/lenses/tests/test_shellvars.aug +index ee23698..f955b3e 100644 +--- a/lenses/tests/test_shellvars.aug ++++ b/lenses/tests/test_shellvars.aug +@@ -524,6 +524,17 @@ esac\n" = + } + } + ++(* Test: Shellvars.lns ++ Parse (almost) any command *) ++test Shellvars.lns get "echo foobar 'and this is baz' ++/usr/local/bin/myscript.sh with args\n" = ++ { "@command" = "echo" ++ { "@arg" = "foobar 'and this is baz'" } ++ } ++ { "@command" = "/usr/local/bin/myscript.sh" ++ { "@arg" = "with args" } ++ } ++ + (* Local Variables: *) + (* mode: caml *) + (* End: *) +-- +1.8.3.1 + |