@Override
  public void addScript(String exe, List<String> exeArgs) {
    super.addScript(exe, exeArgs);

    File scriptFile = new File(this.baseWorkingDirectory, exe);

    ensureExecutable(scriptFile);

    ProcessExecution pe = new ProcessExecution(scriptFile.getAbsolutePath());
    pe.setArguments(exeArgs);
    pe.setWaitForCompletion(30 * 60 * 1000L);
    pe.setWorkingDirectory(scriptFile.getParent());

    String msg;
    ProcessExecutionResults results = this.systemInfo.executeProcess(pe);
    if (results.getError() != null) {
      msg = "Could not execute script [" + pe + "]: " + results;
      audit("script", BundleResourceDeploymentHistory.Status.FAILURE, msg);
      throw new RuntimeException(msg, results.getError());
    } else {
      msg = "Executed script [" + pe + "]";
      audit("script", BundleResourceDeploymentHistory.Status.SUCCESS, msg);
    }

    return;
  }