subprocess 0.5.0
Modern subprocess library for c++
Loading...
Searching...
No Matches
environ.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
6#include "basic_types.hpp"
7#include "shell_utils.hpp"
8
9namespace subprocess {
11 public:
12 EnvironSetter(const std::string& name);
13 operator std::string() { return to_string(); }
14 explicit operator bool() const;
15 std::string to_string();
16 EnvironSetter &operator=(const std::string &str);
17 EnvironSetter &operator=(const char* str);
18 EnvironSetter &operator=(std::nullptr_t) { return *this = (const char*)0;}
21 EnvironSetter &operator=(float value);
22 private:
23 std::string mName;
24 };
25
27 class Environ {
28 public:
29 EnvironSetter operator[](const std::string&);
30 };
31
35 extern Environ cenv;
36
39
40#ifdef _WIN32
45 std::u16string create_env_block(const EnvMap& map);
46#endif
47
52 class CwdGuard {
53 public:
55 mCwd = subprocess::getcwd();
56 }
59 }
60
61 private:
62 std::string mCwd;
63 };
64
68 class EnvGuard : public CwdGuard {
69 public:
71 mEnv = current_env_copy();
72 }
74
75 private:
76 EnvMap mEnv;
77 };
78
79
80}
Definition environ.hpp:52
CwdGuard()
Definition environ.hpp:54
~CwdGuard()
Definition environ.hpp:57
Definition environ.hpp:68
EnvGuard()
Definition environ.hpp:70
Definition environ.hpp:10
EnvironSetter(const std::string &name)
EnvironSetter & operator=(int value)
EnvironSetter & operator=(const char *str)
EnvironSetter & operator=(const std::string &str)
EnvironSetter & operator=(std::nullptr_t)
Definition environ.hpp:18
EnvironSetter & operator=(float value)
EnvironSetter & operator=(bool value)
Definition environ.hpp:27
EnvironSetter operator[](const std::string &)
Definition basic_types.hpp:22
void setcwd(const std::string &path)
EnvMap current_env_copy()
Environ cenv
std::map< std::string, std::string > EnvMap
Definition basic_types.hpp:100
std::string getcwd()