1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# Copyright 2009 Canonical Ltd. This software is licensed under the
# GNU Affero General Public License version 3 (see the file LICENSE).
"""Useful utilities."""
__metaclass__ = type
__all__ = [
'fail',
'log',
'run',
'spew',
]
import sys
import subprocess
SPACE = ' '
def fail(message, *args):
print >> sys.stderr, 'FAIL:', message % args
sys.exit(1)
def log(message, *args):
print >> sys.stderr, message % args
def spew(message, *args):
log(message, *args)
def run(*args):
proc = subprocess.Popen(args)
if proc.wait() != 0:
if proc.stderr:
log(proc.stderr)
fail('[%d] %s', proc.returncode, SPACE.join(args))
|