5 #include <boost/optional.hpp>
8 #include "info/globalcode/parameterLister/terminalCodes/TerminalCodes.h"
9 #include "info/globalcode/parameterLister/OutputModule.h"
10 #include "info/globalcode/parameterLister/TerminalOutputModule.h"
13 using namespace info::globalcode::parameterLister;
16 namespace globalcode {
17 namespace parameterLister {
19 boost::optional<string> getenv(const string name) {
20 const char * value = ::getenv(name.c_str());
22 return boost::optional<string>();
24 return boost::optional<string>(value);
28 void process(shared_ptr<OutputModule> om) {
36 int main(int argc, char* argv[]) {
37 terminalCodes::Modifier fgGreen(terminalCodes::FG_GREEN);
38 terminalCodes::Modifier fgReset(terminalCodes::FG_DEFAULT);
40 cout << "INFO: " << fgGreen << "Parameter lister" << fgReset << " is starting" << endl;
42 string command = argv[0];
45 for (int i = 1; i < argc; i++) {
46 args.push_back(argv[i]);
49 for_each(args.begin(), args.end(), [command, fgGreen, fgReset](string s) {
50 cout << fgGreen << command << fgReset << ": " << s << endl;
54 for (int i = 0; i < args.size(); i++) {
56 cout << i + 1 << ":" << s.length() << " = \"" << s << "\"" << endl;
60 string envName = args[0];
61 boost::optional<string> outputModule = getenv(envName);
63 if (outputModule.is_initialized()) {
64 cout << "ENV: " << envName << " = " << outputModule.get() << endl;
66 cout << "ENV: " << envName << " is missing" << endl;
71 shared_ptr<OutputModule> om(new OutputModule());
72 shared_ptr<TerminalOutputModule> tom(new TerminalOutputModule());
73 shared_ptr<OutputModule> o(new TerminalOutputModule());