add dry run option

This commit is contained in:
James Slagle 2013-08-08 09:39:20 -04:00
parent 79d9e9366c
commit deaef2ab0f
2 changed files with 11 additions and 3 deletions

View File

@ -30,6 +30,10 @@ def load_args():
'-p', '--element-path', nargs='*',
help=("element path(s) to search for elements (ELEMENTS_PATH "
"environment variable will take precedence if defined)"))
parser.add_argument(
'-d', '--dry-run', action='store_true',
help=("Dry run only, don't actually modify system, prints out "
"what would have been run."))
return parser.parse_args()
@ -37,7 +41,7 @@ def main():
args = load_args()
logging.basicConfig(level=logging.DEBUG,
format="%(levelname)s:%(asctime)s:%(name)s:%(message)s")
em = manager.ElementManager(args.element, args.element_path)
em = manager.ElementManager(args.element, args.element_path, args.dry_run)
em.run_hook('install')

View File

@ -24,8 +24,9 @@ from diskimage_builder.elements import expand_dependencies
class ElementManager(object):
def __init__(self, elements, element_paths=None):
def __init__(self, elements, element_paths=None, dry_run=False):
self.elements = elements
self.dry_run = dry_run
if os.environ.has_key('ELEMENTS_PATH'):
self.element_paths = os.environ['ELEMENTS_PATH'].split(':')
@ -71,4 +72,7 @@ class ElementManager(object):
scripts = sorted(scripts, key=lambda script: os.path.basename(script))
for script in scripts:
call(['sudo', '-i', '/bin/bash', script])
if not self.dry_run:
call(['sudo', '-i', '/bin/bash', script])
else:
logging.info("script to execute: %s" % script)