public EnvVars call() { return new EnvVars(EnvVars.masterEnvVars); } private static final long serialVersionUID = 1L;
/** * Creates a magic cookie that can be used as the model environment variable * when we later kill the processes. */ public static EnvVars createCookie() { return new EnvVars("HUDSON_COOKIE", UUID.randomUUID().toString()); }
/** * Expands the list of environment variables by inheriting current env variables. */ private static EnvVars inherit(@Nonnull Map<String,String> overrides) { EnvVars m = new EnvVars(EnvVars.masterEnvVars); m.overrideExpandingAll(overrides); return m; }
private static EnvVars toMap(List<Entry> entries) { EnvVars map = new EnvVars(); if (entries!=null) for (Entry entry: entries) map.put(entry.key,entry.value); return map; }
/** * Returns cached environment variables (copy to prevent modification) for the JVM on this computer. * If this is the master, it returns the system property of the master computer. */ public EnvVars getEnvironment() throws IOException, InterruptedException { EnvVars cachedEnvironment = this.cachedEnvironment; if (cachedEnvironment != null) { return new EnvVars(cachedEnvironment); } cachedEnvironment = EnvVars.getRemote(getChannel()); this.cachedEnvironment = cachedEnvironment; return new EnvVars(cachedEnvironment); }
/** * @deprecated as of 1.292 * Use {@link #getEnvironment(TaskListener)} instead. */ @Deprecated public Map<String,String> getEnvVars() { LOGGER.log(WARNING, "deprecated call to Run.getEnvVars\n\tat {0}", new Throwable().getStackTrace()[1]); try { return getEnvironment(new LogTaskListener(LOGGER, Level.INFO)); } catch (IOException e) { return new EnvVars(); } catch (InterruptedException e) { return new EnvVars(); } }
/** * Expands the list of environment variables by inheriting current env variables. */ private static EnvVars inherit(@CheckForNull String[] env) { // convert String[] to Map first EnvVars m = new EnvVars(); if(env!=null) { for (String e : env) { int index = e.indexOf('='); m.put(e.substring(0,index), e.substring(index+1)); } } // then do the inheritance return inherit(m); }
private static EnvVars initMaster() { EnvVars vars = new EnvVars(System.getenv()); vars.platform = Platform.current(); if(Main.isUnitTest || Main.isDevelopmentMode) // if unit test is launched with maven debug switch, // we need to prevent forked Maven processes from seeing it, or else // they'll hang vars.remove("MAVEN_OPTS"); return vars; } }
@Override public Channel launchChannel(String[] cmd, OutputStream out, FilePath workDir, Map<String, String> envVars) throws IOException, InterruptedException { EnvVars e = new EnvVars(env); e.putAll(envVars); return outer.launchChannel(cmd,out,workDir,e); }
/** * Obtains the environment variables of a remote peer. * * @param channel * Can be null, in which case the map indicating "N/A" will be returned. * @return * A fresh copy that can be owned and modified by the caller. */ public static EnvVars getRemote(VirtualChannel channel) throws IOException, InterruptedException { if(channel==null) return new EnvVars("N/A","N/A"); return channel.call(new GetEnvVars()); }
@Override public Proc launch(ProcStarter starter) throws IOException { EnvVars e = new EnvVars(env); if (starter.envs!=null) { for (String env : starter.envs) { e.addLine(env); } } starter.envs = Util.mapToEnv(e); return outer.launch(starter); }
private synchronized EnvVars getEnvironmentVariables2() throws WindowsOSProcessException { if(env !=null) { return env; } env = new EnvVars(); try { env.putAll(p.getEnvironmentVariables()); } catch (WinpException e) { throw new WindowsOSProcessException("Failed to get the environment variables", e); } return env; }
public synchronized EnvVars getEnvironmentVariables() { if(envVars !=null) return envVars; envVars = new EnvVars(); try { byte[] environ = readFileToByteArray(getFile("environ")); int pos=0; for (int i = 0; i < environ.length; i++) { byte b = environ[i]; if(b==0) { envVars.addLine(new String(environ,pos,i-pos)); pos=i+1; } } } catch (IOException e) { // failed to read. this can happen under normal circumstances (most notably permission denied) // so don't report this as an error. } return envVars; } }
@Nonnull @Override @SuppressWarnings("unchecked") public GeneratedItems[] configure(CNode config, ConfigurationContext context) throws ConfiguratorException { JenkinsJobManagement management = new JenkinsJobManagement(System.out, new EnvVars(), null, null, LookupStrategy.JENKINS_ROOT); Configurator<ScriptSource> configurator = context.lookupOrFail(ScriptSource.class); return config.asSequence().stream() .map(source -> getActualValue(source, context)) .map(source -> getScriptFromSource(source, context, configurator)) .map(script -> generateFromScript(script, management)) .toArray(GeneratedItems[]::new); }
EnvVars env = new EnvVars();
/** * Creates an environment variable override to be used for launching processes on this node. * * @see ProcStarter#envs(Map) * @since 1.489 */ public @Nonnull EnvVars buildEnvironment(@Nonnull TaskListener listener) throws IOException, InterruptedException { EnvVars env = new EnvVars(); Node node = getNode(); if (node==null) return env; // bail out for (NodeProperty nodeProperty: Jenkins.getInstance().getGlobalNodeProperties()) { nodeProperty.buildEnvVars(env,listener); } for (NodeProperty nodeProperty: node.getNodeProperties()) { nodeProperty.buildEnvVars(env,listener); } // TODO: hmm, they don't really belong String rootUrl = Jenkins.getInstance().getRootUrl(); if(rootUrl!=null) { env.put("HUDSON_URL", rootUrl); // Legacy. env.put("JENKINS_URL", rootUrl); } return env; }
/** * Builds up the environment variable map that's sufficient to identify a process * as ours. This is used to kill run-away processes via {@link ProcessTree#killAll(Map)}. */ public EnvVars getCharacteristicEnvVars() { EnvVars env = new EnvVars(); env.put("JENKINS_SERVER_COOKIE",SERVER_COOKIE.get()); env.put("HUDSON_SERVER_COOKIE",SERVER_COOKIE.get()); // Legacy compatibility env.put("JOB_NAME",getFullName()); env.put("JOB_BASE_NAME", getName()); return env; }
public synchronized EnvVars getEnvironmentVariables() { if(envVars !=null) return envVars; envVars = new EnvVars();
public synchronized EnvVars getEnvironmentVariables() { if(envVars != null) return envVars; envVars = new EnvVars();
@Test @Issue("Issue #173") @ConfiguredWithCode("SetEnvironmentVariable.yml") public void shouldSetEnvironmentVariable() throws Exception { final DescribableList<NodeProperty<?>, NodePropertyDescriptor> properties = Jenkins.getInstance().getNodeProperties(); EnvVars env = new EnvVars(); for (NodeProperty<?> property : properties) { property.buildEnvVars(env, TaskListener.NULL); } assertEquals("BAR", env.get("FOO")); }