Ejemplo n.º 1
0
  void inject(Map<String, Object> environmentVars) {
    if (!environmentVars.isEmpty()) {
      Map<String, Object> replacementEnv = new HashMap<String, Object>(System.getenv());
      for (Map.Entry<String, Object> envVar : environmentVars.entrySet()) {
        String key = envVar.getKey();
        Object val = envVar.getValue();
        if (val == null || "".equals(val)) {
          replacementEnv.remove(envVar.getKey());
          if ("GEM_PATH".equals(key) && !environmentVars.containsKey("GEM_HOME")) {
            replacementEnv.remove("GEM_HOME");
          }
        } else {
          replacementEnv.put(key, val);
          if ("GEM_PATH".equals(key) && !environmentVars.containsKey("GEM_HOME")) {
            String gemHome = val.toString().split(File.pathSeparator)[0];
            replacementEnv.put("GEM_HOME", gemHome);
          }
        }
      }

      config.setEnvironment(replacementEnv);
    }
  }