diff options
Diffstat (limited to 'src/libutil/environment-variables.hh')
-rw-r--r-- | src/libutil/environment-variables.hh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/libutil/environment-variables.hh b/src/libutil/environment-variables.hh new file mode 100644 index 000000000..784b95921 --- /dev/null +++ b/src/libutil/environment-variables.hh @@ -0,0 +1,42 @@ +#pragma once +/** + * @file + * + * Utilities for working with the current process's environment + * variables. + */ + +#include <map> +#include <optional> +#include <string> + + +namespace nix { + +/** + * @return an environment variable. + */ +std::optional<std::string> getEnv(const std::string & key); + +/** + * @return a non empty environment variable. Returns nullopt if the env + * variable is set to "" + */ +std::optional<std::string> getEnvNonEmpty(const std::string & key); + +/** + * Get the entire environment. + */ +std::map<std::string, std::string> getEnv(); + +/** + * Clear the environment. + */ +void clearEnv(); + +/** + * Replace the entire environment with the given one. + */ +void replaceEnv(const std::map<std::string, std::string> & newEnv); + +} |