public PropertiesProcessor getRunnerPropertiesProcessor()

in powershell-server/src/main/java/jetbrains/buildServer/powershell/server/PowerShellRunType.java [56:86]


  public PropertiesProcessor getRunnerPropertiesProcessor() {
    return properties -> {
      Collection<InvalidProperty> col = new ArrayList<>();
      final PowerShellExecutionMode exe = PowerShellExecutionMode.fromString(properties.get(RUNNER_EXECUTION_MODE));
      if (exe == null) {
        col.add(new InvalidProperty(RUNNER_EXECUTION_MODE, "Execution mode must be specified"));
      }

      final PowerShellScriptMode mod = getScriptMode(properties);
      if (mod == null) {
        col.add(new InvalidProperty(RUNNER_SCRIPT_MODE, "Script mode is not defined"));
      } else {
        switch (mod) {
          case FILE:
            final String script = properties.get(RUNNER_SCRIPT_FILE);
            if (StringUtil.isEmptyOrSpaces(script)) {
              col.add(new InvalidProperty(RUNNER_SCRIPT_FILE, "Script file is not defined"));
            } else if (!ReferencesResolverUtil.containsReference(script) && !script.toLowerCase().endsWith(".ps1")) {
              col.add(new InvalidProperty(RUNNER_SCRIPT_FILE, "PowerShell requires script files to have .ps1 extension"));
            }
            break;
          case CODE:
            if (StringUtil.isEmptyOrSpaces(properties.get(RUNNER_SCRIPT_CODE))) {
              col.add(new InvalidProperty(RUNNER_SCRIPT_CODE, "Code should not be empty"));
            }
            break;
        }
      }
      return col;
    };
  }