bootstrap-vz/bootstrapvz/plugins/commands/tasks.py

19 lines
738 B
Python
Raw Normal View History

from bootstrapvz.base import Task
from bootstrapvz.common import phases
from bootstrapvz.plugins.file_copy.tasks import MkdirCommand
from bootstrapvz.plugins.file_copy.tasks import FileCopyCommand
class ImageExecuteCommand(Task):
description = 'Executing commands in the image'
phase = phases.user_modification
predecessors = [MkdirCommand, FileCopyCommand]
@classmethod
def run(cls, info):
from bootstrapvz.common.tools import log_check_call
for raw_command in info.manifest.plugins['commands']['commands']:
command = map(lambda part: part.format(root=info.root, **info.manifest_vars), raw_command)
shell = len(command) == 1
log_check_call(command, shell=shell)