import subprocess
from acquisition import AcquisitionStep
[docs]class AcquisitionForkStep(AcquisitionStep):
    """
    Class to describe a fork acquisition step.
    Attributes:
        command_template (string): command template to execute
    """
    command_template = None
[docs]    def init(self):
        if self.args.command_template is None:
            raise Exception('you have to set a command-template')
        if "{PATH}" not in self.args.command_template:
            raise Exception('{PATH} is not in the command template') 
[docs]    def get_command(self, filepath):
        return self.args.command_template.replace('{PATH}', filepath).\
            
replace('{PLUGIN_DIR}', self.get_plugin_directory_path()) 
[docs]    def process(self, xaf):
        cmd = self.get_command(xaf.filepath)
        self.info("Calling %s ...", cmd)
        return_code = subprocess.call(cmd, shell=True)
        if return_code != 0:
            self.warning("%s returned a bad return code: %i",
                         cmd, return_code)
        return (return_code == 0)