Merge authors:
Stéphane Graber (stgraber)
Related merge proposals:
https://code.launchpad.net/~stgraber/upstart/upstart-shell-paths/+merge/140175
proposed by: Stéphane Graber (stgraber)
review: Approve - James Hunt (jamesodhunt)
------------------------------------------------------------
revno: 1408 [merge]
committer: James Hunt <[email protected]>
branch nick: upstart
timestamp: Mon 2012-12-17 11:54:09 +0000
message:
* Merge of lp:~stgraber/upstart/upstart-shell-paths (LP: #1086474).
modified:
init/job_process.c
init/tests/test_job_process.c
--
lp:upstart
https://code.launchpad.net/~upstart-devel/upstart/trunk
Your team Upstart Reviewers is subscribed to branch lp:upstart.
To unsubscribe from this branch go to
https://code.launchpad.net/~upstart-devel/upstart/trunk/+edit-subscription
=== modified file 'init/job_process.c'
--- init/job_process.c 2012-12-03 20:27:09 +0000
+++ init/job_process.c 2012-12-17 11:36:46 +0000
@@ -178,11 +178,18 @@
nih_assert (proc != NULL);
nih_assert (proc->command != NULL);
+
+ /* If the command string contains any shell-like characters,
+ * automatically set script = TRUE since that's the best way to deal
+ * with things like variables.
+ */
+ if (strpbrk (proc->command, SHELL_CHARS))
+ proc->script = TRUE;
+
/* We run the process using a shell if it says it wants to be run
- * as such, or if it contains any shell-like characters; since that's
- * the best way to deal with things like variables.
+ * as such.
*/
- if ((proc->script) || strpbrk (proc->command, SHELL_CHARS)) {
+ if (proc->script) {
char *nl, *p;
argc = 0;
=== modified file 'init/tests/test_job_process.c'
--- init/tests/test_job_process.c 2012-12-07 21:52:38 +0000
+++ init/tests/test_job_process.c 2012-12-17 11:27:01 +0000
@@ -680,6 +680,8 @@
output = fopen (filename, "r");
TEST_FILE_EQ (output, "BAR=BAZ\n");
TEST_FILE_EQ (output, "FOO=BAR\n");
+ if (job->class->process[PROCESS_MAIN]->script)
+ TEST_FILE_EQ (output, "PWD=/\n");
TEST_FILE_EQ (output, "UPSTART_INSTANCE=\n");
TEST_FILE_EQ (output, "UPSTART_JOB=test\n");
TEST_FILE_EQ (output, "UPSTART_NO_SESSIONS=1\n");
@@ -734,6 +736,8 @@
output = fopen (filename, "r");
TEST_FILE_EQ (output, "BAR=BAZ\n");
TEST_FILE_EQ (output, "FOO=BAR\n");
+ if (job->class->process[PROCESS_MAIN]->script)
+ TEST_FILE_EQ (output, "PWD=/\n");
TEST_FILE_EQ (output, "UPSTART_INSTANCE=foo\n");
TEST_FILE_EQ (output, "UPSTART_JOB=test\n");
TEST_FILE_EQ (output, "UPSTART_NO_SESSIONS=1\n");
@@ -790,6 +794,8 @@
TEST_FILE_EQ (output, "BAR=BAZ\n");
TEST_FILE_EQ (output, "CRACKLE=FIZZ\n");
TEST_FILE_EQ (output, "FOO=SMACK\n");
+ if (job->class->process[PROCESS_PRE_STOP]->script)
+ TEST_FILE_EQ (output, "PWD=/\n");
TEST_FILE_EQ (output, "UPSTART_INSTANCE=\n");
TEST_FILE_EQ (output, "UPSTART_JOB=test\n");
TEST_FILE_EQ (output, "UPSTART_NO_SESSIONS=1\n");
@@ -846,6 +852,8 @@
TEST_FILE_EQ (output, "BAR=BAZ\n");
TEST_FILE_EQ (output, "CRACKLE=FIZZ\n");
TEST_FILE_EQ (output, "FOO=SMACK\n");
+ if (job->class->process[PROCESS_POST_STOP]->script)
+ TEST_FILE_EQ (output, "PWD=/\n");
TEST_FILE_EQ (output, "UPSTART_INSTANCE=\n");
TEST_FILE_EQ (output, "UPSTART_JOB=test\n");
TEST_FILE_EQ (output, "UPSTART_NO_SESSIONS=1\n");
--
upstart-devel mailing list
[email protected]
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/upstart-devel