All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: [PATCH] scripts/combo-layer: Fix exit codes and tty handling
Date: Wed, 03 Jun 2015 17:44:27 +0100	[thread overview]
Message-ID: <1433349867.404.250.camel@linuxfoundation.org> (raw)

If combo-layer is called from a non-interactive context we should exit
with a correct error code rather than try and drop to a shell.

This patch cleans up a few error case exit codes as well as
detecting and handling non-interactive usage.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

diff --git a/scripts/combo-layer b/scripts/combo-layer
index 698d3e3..4029d2b 100755
--- a/scripts/combo-layer
+++ b/scripts/combo-layer
@@ -502,6 +502,10 @@ def check_patch(patchfile):
         os.rename(patchfile + '.tmp', patchfile)
 
 def drop_to_shell(workdir=None):
+    if not sys.stdin.isatty():
+        print "Not a TTY so can't drop to shell for resolution, exiting."
+        return False
+
     shell = os.environ.get('SHELL', 'bash')
     print('Dropping to shell "%s"\n' \
           'When you are finished, run the following to continue:\n' \
@@ -547,7 +551,7 @@ def get_repos(conf, repo_names):
     for repo in repos:
         if not repo in conf.repos:
             logger.error("Specified component '%s' not found in configuration" % repo)
-            sys.exit(0)
+            sys.exit(1)
 
     if not repos:
         repos = conf.repos
@@ -695,7 +699,7 @@ def action_update(conf, args):
         print('You may now edit the patch and patch list in %s\n' \
               'For example, you can remove unwanted patch entries from patchlist-*, so that they will be not applied later' % patch_dir);
         if not drop_to_shell(patch_dir):
-            sys.exit(0)
+            sys.exit(1)
 
     # Step 6: apply the generated and revised patch
     apply_patchlist(conf, repos)
@@ -761,7 +765,7 @@ def apply_patchlist(conf, repos):
                         if not drop_to_shell():
                             if prevrev != repo['last_revision']:
                                 conf.update(name, "last_revision", prevrev)
-                            sys.exit(0)
+                            sys.exit(1)
                 prevrev = lastrev
                 i += 1
             # Once all patches are applied, we should update




                 reply	other threads:[~2015-06-03 16:44 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1433349867.404.250.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.