summaryrefslogtreecommitdiff
path: root/morphlib/execute.py
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2011-12-08 08:33:37 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2011-12-08 09:56:29 +0000
commit007f2e556796f749ab24d79106cd0f1da46b00c3 (patch)
treee80221342522d9f5b0d7ab361143004461d06965 /morphlib/execute.py
parent38d6f5c1b3cb4890d105fdda07f87e0f78522e21 (diff)
downloadmorph-007f2e556796f749ab24d79106cd0f1da46b00c3.tar.gz
Make the install parts of morphs run as sudo
Then fix all the places where this broke things because they didn't have the required permissions. This is a potential security risk of course, it would be preferable if the install commands were run in a fakeroot session and only the final image building was run as root, but it needs to work first
Diffstat (limited to 'morphlib/execute.py')
-rw-r--r--morphlib/execute.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/morphlib/execute.py b/morphlib/execute.py
index afad1317..f4cb2b94 100644
--- a/morphlib/execute.py
+++ b/morphlib/execute.py
@@ -55,7 +55,9 @@ class Execute(object):
self.msg('# %s' % command)
argv = ['sh', '-c', command]
if as_root:
- argv = ['sudo'] + argv # pragma: no cover
+ argv = (['sudo'] +
+ ["%s=%s" % x for x in self.env.iteritems()] +
+ argv) # pragma: no cover
elif as_fakeroot:
argv = ['fakeroot'] + argv
logging.debug('run: argv=%s' % repr(argv))
@@ -85,7 +87,9 @@ class Execute(object):
'''
if as_root:
- argv = ['sudo'] + argv # pragma: no cover
+ argv = (['sudo'] +
+ ["%s=%s" % x for x in self.env.iteritems()] +
+ argv) # pragma: no cover
elif as_fakeroot:
argv = ['fakeroot'] + argv
logging.debug('runv: argv=%s' % repr(argv))