public static void inspectCurrentEnvironment()

in rake-runner-agent/src/org/jetbrains/plugins/ruby/rvm/RVMSupportUtil.java [83:127]


  public static void inspectCurrentEnvironment(@NotNull final EnvironmentPatchableMap envParams,
                                               @NotNull final RubySdk sdk,
                                               @NotNull final BuildProgressLogger logger) {
    // Diagnostic check:

    if (SdkUtil.isRvmSdk(sdk)) {
      // rvm sdk

      // RVM support can override only "default" process values. Build env vars and agent env. vars
      // wont be overriden. Thus lets check which potentially dangerous environment variables
      // won't be overriden and inform user about them

      // do check
      final Map<String, String> defaultEnvs = getDefaultEnvVarsForRvmEnvPatcher();
      for (String envVarName : SharedRVMUtil.Constants.SYSTEM_RVM_ENVVARS_TO_RESET) {
        if (!SharedRVMUtil.canOverride(envVarName, envParams, defaultEnvs)) {
          final String value = envParams.get(envVarName);
          // info msg - most likely user understand what he is doing.
          logger.warning("Environment variable '" + envVarName + "' has predefined value '" + value +
                         "'. It may affect runtime build behaviour because TeamCity RVM support won't override it.");
        }
      }
    } else {
      // non-rvm sdk

      // TC patches only PATH env variable for non-rvm sdks,
      // thus following env variables are potentially dangerous.
      // (e.g. user launched TC agent from rvm-enabled console)
      final String[] variablesToCheck = new String[]{
        SharedRVMUtil.Constants.GEM_PATH,
        SharedRVMUtil.Constants.GEM_HOME,
        SharedRVMUtil.Constants.BUNDLE_PATH,
      };

      // do check
      for (String envVarName : variablesToCheck) {
        if (envParams.containsKey(envVarName)) {
          final String value = envParams.get(envVarName);
          // warning - most likely user doesn't understand what he is doing.
          logger.warning("Environment variable '" + envVarName + "' has predefined value '" + value +
                         "'. It may affect runtime build behaviour because TeamCity Ruby support won't override it.");
        }
      }
    }
  }