From 1cae2ef7ad302c1da6f17ee3c632800e69ae6a8a Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Fri, 2 Jan 2015 10:58:07 +0000 Subject: Fix logging and display of commandlines being executed by Morph We were attempting to display commandlines with correct shell-escaping, but the logic was super broken so users would end up seeing this sort of thing instead: 2015-01-02 10:25:42 # g | i | t | | r | e | v | - | p | a | r | s | e | | - | - | v | e | r | i | f | y | | ' | 9 | 8 | f | e | a | 8 | 7 | b | 7 | 2 | 7 | 2 | 5 | 3 | e | 7 | f | f | 8 | 1 | 0 | 5 | 4 | 3 | 4 | c | 9 | e | a | 9 | 0 | 2 | b | b | 6 | a | 6 | f | 7 | e | ^ | { | c | o | m | m | i | t | } | ' Commandlines should now display as intended, more like this: 2015-01-02 10:57:17 # git rev-parse --verify '9df9643842e4b4d8ece710fe6105f32fa38a0d22^{commit}' This broken logic was introduced as a post-review fixup in merge commit c57952ef44a0f1f161441970fcf2f27a39b0de7c. --- morphlib/app.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'morphlib') diff --git a/morphlib/app.py b/morphlib/app.py index eb0ff3b7..6710e4f0 100644 --- a/morphlib/app.py +++ b/morphlib/app.py @@ -1,4 +1,4 @@ -# Copyright (C) 2011-2014 Codethink Limited +# Copyright (C) 2011-2015 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 @@ -361,12 +361,13 @@ class Morph(cliapp.Application): if print_command: # Print the command line - commands = [argv] + list(args) - for command in commands: + commands = [] + for command in [argv] + list(args): if isinstance(command, list): - for i in xrange(0, len(command)): - command[i] = str(command[i]) - commands = ' '.join(map(pipes.quote, command)) + command_str = ' '.join(map(pipes.quote, command)) + else: + command_str = pipes.quote(command) + commands.append(command_str) self.status(msg='# %(cmdline)s', cmdline=' | '.join(commands), -- cgit v1.2.1