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.");
}
}
}
}