X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=system%2Futils.py;h=fbdd3f64ab1468bcec6f2933d6dbc766faa04b1b;hb=b9e119571675a2eda425baf89798ce6261fb48d2;hp=a7637e608e2a182c31e65cf5290490179f93b75f;hpb=62f21756fb70c05e01ff471eb26cd1d06489b95f;p=tests.git diff --git a/system/utils.py b/system/utils.py index a7637e6..fbdd3f6 100644 --- a/system/utils.py +++ b/system/utils.py @@ -1,4 +1,6 @@ -# $Id$ +# Thierry Parmentelat +# Copyright (C) 2010 INRIA +# import time, os, re, glob, sys from pprint import PrettyPrinter @@ -21,11 +23,13 @@ def pprint(message,spec,depth=2): def system(command,background=False,silent=False): - if options.dry_run: + if getattr(options,'dry_run',None): print 'dry_run:',command return 0 - if silent : command += " 2> /dev/null" + if silent : + if command.find(';')>=0: command = "(%s) 2> /dev/null" % command + else: command += " 2> /dev/null" if background: command += " &" if silent: print '.', @@ -35,20 +39,17 @@ def system(command,background=False,silent=False): # don't show in summary print "->",now,'--', sys.stdout.flush() - return os.system("set -x; " + command) + if not silent: + command = "set -x; " + command + return os.system(command) ### WARNING : this ALWAYS does its job, even in dry_run mode def output_of (command): import commands -# if options.dry_run: -# print 'dry_run',command -# return (0,'[[dry-run - fake output]]') -# else: (code,string) = commands.getstatusoutput(command) return (code,string) - # convenience: translating shell-like pattern into regexp def match (string, pattern): # tmp - there's probably much simpler