public ShellScriptRunner(
      String scriptPath,
      String runningFilePath,
      String runningFileMessage,
      boolean appendRemoveCommand,
      String name,
      String[] outputFilePaths,
      OutputFileProcessor outputFileProcessor,
      ShellScriptWatcher watcher,
      boolean visibleTerminal) {
    this.scriptPath = scriptPath;
    this.runningFilePath = runningFilePath;
    if (runningFilePath == null && !StringUtil.blank(scriptPath))
      this.runningFilePath = ShellScriptUtil.getDefaultRunningFilePath();

    this.runningFileMessage = runningFileMessage;
    this.appendRemoveCommand = appendRemoveCommand;
    this.name = name;
    this.outputFilePaths = outputFilePaths;
    this.outputFileProcessor = outputFileProcessor;
    this.watcher = watcher;
    this.visibleTerminal = visibleTerminal;
  }