private void registerDetectedPowerShells()

in powershell-agent/src/main/java/jetbrains/buildServer/powershell/agent/PowerShellInfoProvider.java [109:133]


  private void registerDetectedPowerShells(RegistryPowerShellDetector registryPowerShellDetector,
                                           CommandLinePowerShellDetector commandLinePowerShellDetector,
                                           Map<String, String> parameters) {
    Map<String, PowerShellInfo> shellsFromReg = SystemInfo.isWindows
      ? registryPowerShellDetector.findShells()
      : Collections.emptyMap();
    Map<String, PowerShellInfo> shellsFromCmd = commandLinePowerShellDetector.findShells(shellsFromReg.keySet());
    Map<String, PowerShellInfo> shells = new HashMap<>(shellsFromReg);
    shells.putAll(shellsFromCmd);
    for (Map.Entry<String, PowerShellInfo> entry : shells.entrySet()) {
      if (!myHolder.getShells().containsKey(entry.getKey())) {
        entry.getValue().saveInfo(parameters);
        myHolder.addShellInfo(entry.getKey(), entry.getValue());
      }
    }
    // provide parameters for agent compatibility filters
    if (!myHolder.getShells().isEmpty()) {
      provideMaxVersions(parameters);
      provideCompatibilityParams(parameters);
    } else {
      LOG.info("No PowerShell detected. If it is installed in non-standard location, " +
               "please provide install locations in teamcity.powershell.detector.search.paths " +
               "agent property (with ';' as a separator)");
    }
  }