X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=system%2Futils.py;h=fbdd3f64ab1468bcec6f2933d6dbc766faa04b1b;hb=b9e119571675a2eda425baf89798ce6261fb48d2;hp=22eb885d373037d7ce4539426213ed30802bc25c;hpb=1ee8054504c29895fc391483e4a2b898bac524db;p=tests.git diff --git a/system/utils.py b/system/utils.py index 22eb885..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 @@ -20,30 +22,34 @@ def pprint(message,spec,depth=2): -def system(command,background=False): - if background: command += " &" - if options.dry_run: +def system(command,background=False,silent=False): + if getattr(options,'dry_run',None): print 'dry_run:',command return 0 + + if silent : + if command.find(';')>=0: command = "(%s) 2> /dev/null" % command + else: command += " 2> /dev/null" + if background: command += " &" + if silent: + print '.', + sys.stdout.flush() else: now=time.strftime("%H:%M:%S", time.localtime()) # 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