5 #include <boost/optional.hpp>
7 #include "info/globalcode/parameterLister/terminalCodes/TerminalCodes.h"
10 using namespace info::globalcode::parameterLister;
13 namespace globalcode {
14 namespace parameterLister {
16 boost::optional<string> getenv(const string name) {
17 const char * value = ::getenv(name.c_str());
19 return boost::optional<string>();
21 return boost::optional<string>(value);
30 int main(int argc, char* argv[]) {
31 terminalCodes::Modifier fgGreen(terminalCodes::FG_GREEN);
32 terminalCodes::Modifier fgReset(terminalCodes::FG_DEFAULT);
34 cout << "INFO: " << fgGreen << "Parameter lister" << fgReset << " is starting" << endl;
36 string command = argv[0];
39 for (int i = 1; i < argc; i++) {
40 args.push_back(argv[i]);
43 for_each(args.begin(), args.end(), [command, fgGreen, fgReset](string s) {
44 cout << fgGreen << command << fgReset << ": " << s << endl;
48 for (int i = 0; i < args.size(); i++) {
50 cout << i + 1 << ":" << s.length() << " = \"" << s << "\"" << endl;
54 string envName = args[0];
55 boost::optional<string> outputModule = getenv(envName);
57 if (outputModule.is_initialized()) {
58 cout << "ENV: " << envName << " = " << outputModule.get();
60 cout << "ENV: " << envName << " is missing";