From 8d1d643108108ab29e8673c37dbe3dc8c5ecefeb Mon Sep 17 00:00:00 2001 From: Pedro Alvarez Date: Tue, 2 Aug 2016 10:17:49 +0000 Subject: Revert "run commands in builder using -e" Some failing commands in a yaml block were being ignored. For example the following commands... pre-configure-commands: - | cp nonexistent foo echo foo ... where giving the following result without making the build fail: ### PRE-CONFIGURE-COMMANDS ### + cp nonexistent foo cp: can't stat 'nonexistent': No such file or directory + echo foo foo This commit also adjusts the test-shell.c to allow the use of '-e' flag. No other changes because the shell was already failing after the first failure found. Change-Id: Ie78b25a99f1b5d6d0d26be74ddc377025dff69fd --- morphlib/builder.py | 2 +- scripts/test-shell.c | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/morphlib/builder.py b/morphlib/builder.py index 0bac730c..1ad19d06 100644 --- a/morphlib/builder.py +++ b/morphlib/builder.py @@ -378,7 +378,7 @@ class ChunkBuilder(BuilderBase): stdout.flush() with open(os.devnull) as devnull: - exit_code = self.runcmd(['sh', '-x', '-c', cmd], + exit_code = self.runcmd(['sh', '-x', '-e', '-c', cmd], extra_env=extra_env, cwd=relative_builddir, stdin=devnull, diff --git a/scripts/test-shell.c b/scripts/test-shell.c index a57fddce..22aa86f9 100644 --- a/scripts/test-shell.c +++ b/scripts/test-shell.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2015 Codethink Limited +/* Copyright (C) 2014-2016 Codethink Limited This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -201,16 +201,17 @@ int run_commands(FILE *cmdstream){ } int main(int argc, char *argv[]) { - if (argc == 4 && strcmp(argv[1], "-x") == 0 \ - && strcmp(argv[2], "-c") == 0) { - size_t cmdlen = strlen(argv[3]); - FILE *cmdstream = fmemopen(argv[3], cmdlen, "r"); + if (argc == 5 && strcmp(argv[1], "-x") == 0 \ + && strcmp(argv[2], "-e") == 0 \ + && strcmp(argv[3], "-c") == 0) { + size_t cmdlen = strlen(argv[4]); + FILE *cmdstream = fmemopen(argv[4], cmdlen, "r"); return run_commands(cmdstream); } else if (argc == 2) { FILE *cmdstream = fopen(argv[1], "r"); return run_commands(cmdstream); } else { - fprintf(stderr, "Usage: %s -x -c COMMAND|%s SCRIPT\n", + fprintf(stderr, "Usage: %s -x -e -c COMMAND|%s SCRIPT\n", argv[0], argv[0]); return 1; } -- cgit v1.2.1