void addEnvironmentVariable(char* env) { std::string envStr(env); std::sregex_iterator itr(envStr.begin(), envStr.end(), ENV_PATTERN), itr_end; std::string variableName = (itr++)->str(); std::string variableValue = itr->str(); std::cout << variableName << " = " << variableValue << std::endl; mProperties.add("ENV." + variableName, variableValue); }
std::vector<std::string> BuildEnv(ftp::Client& client) { std::ostringstream os; os << "USER="******"\n" << "UID=" << client.User().ID() << "\n" << "FLAGS=" << client.User().Flags() << "\n" << "TAGLINE=" << client.User().Tagline() << "\n" << "GROUP=" << client.User().PrimaryGroup() << "\n" << "GID=" << client.User().PrimaryGID() << "\n" << "HOST=" << client.Ident() << "@" << client.IP(); std::string envStr(os.str()); std::vector<std::string> env; util::Split(env, envStr, "\n", true); return env; }
runner::env_vars_list_t runner::read_environment(const WCHAR* source) const { env_vars_list_t vars; for (WCHAR* env = (WCHAR*)source; *env != '\0';) { std::string envStr(w2a((const WCHAR*)env)); int pos = envStr.find("="); vars.push_back(make_pair(envStr.substr(0, pos), envStr.substr(pos + 1))); env += envStr.length() + 1; } return vars; }