summaryrefslogtreecommitdiffabout
path: root/NEWS
authorSergey Poznyakoff <gray@gnu.org>2019-05-31 05:45:23 (GMT)
committer Sergey Poznyakoff <gray@gnu.org>2019-05-31 05:58:54 (GMT)
commit058f256a6f41fc9c36404b2e22580546e4f55b33 (patch) (side-by-side diff)
treeb6afde4271da1d92e5c10e1c50213c2fda7b2831 /NEWS
parentca38eef07ac3f9a4825f0046c1d373ed7b2f074b (diff)
downloadpies-058f256a6f41fc9c36404b2e22580546e4f55b33.tar.gz
pies-058f256a6f41fc9c36404b2e22580546e4f55b33.tar.bz2
Provide an option to run commands via sh -c
The new flag "shell" instructs pies to run the command marked with it as '/bin/sh -c $command'. Alternative shell can be supplied ising the 'program' statement. This is useful if the command line uses shell-specific features (command or variable expansion, redirection, pipes, etc.) This commit also fixes a bug in the 'env' statement handling: a single argument with embedded whitespaces was undergoing word splitting and thus incorrectly handled as multiple arguments. * NEWS: Document changes. * doc/pies.texi: Likewise. * src/comp.c (component_free): Free command. (component_finish): Split command into argv/argc as directed by the CF_SHELL flag. * src/pies.c (_cb_command): Remove. Functionality moved to component_finish(). (_cb_env): Bugfix. Don't split arguments. * src/pies.h (CF_SHELL): New flag. (component) <command>: New member. * tests/Makefile.am: Add new tests. * tests/testsuite.at: Add new tests. * tests/aux/respawn: Change default timeout to 1 second. * tests/respawn.at: Minor change. * tests/shell.at: New test.
Diffstat (limited to 'NEWS') (more/less context) (ignore whitespace changes)
-rw-r--r--NEWS22
1 files changed, 21 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 0840055..f34a6f0 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU Pies NEWS -- history of user-visible changes. 2019-05-28
+GNU Pies NEWS -- history of user-visible changes. 2019-05-31
See the end of file for copying conditions.
Please send Pies bug reports to <bug-pies@gnu.org> or
@@ -25,8 +25,28 @@ configuration file. Such multiple components are run simultaneously,
unless required otherwise by their "prerequisites" and "dependents"
statements.
+* New component flag: shell
+
+The 'shell' flag instructs pies to run the component via "/bin/sh -c
+$command". Use it if the command should undergo variable expansion,
+contains redirections, pipes, etc. E.g.
+
+ component X {
+ flags shell;
+ command "if [ -n "$X" ]; then foo; else bar; fi"
+ }
+
* Improved cyclic dependency diagnostics
+* Fix a bug in 'env' statement
+
+Previous versions applied unnecessary word splitting if given a
+single argument. This is now fixed, so that e.g. the following
+statement is processed correctly and defines a single variable
+X to have the value "foo bar":
+
+ env "X=foo bar"
+
Version 1.3, 2016-10-01

Return to:

Send suggestions and report system problems to the System administrator.