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);
32 int main(int argc, char* argv[]) {
33 terminalCodes::Modifier fgGreen(terminalCodes::FG_GREEN);
34 terminalCodes::Modifier fgReset(terminalCodes::FG_DEFAULT);
36 cout << "INFO: " << fgGreen << "Parameter lister" << fgReset << " is starting" << endl;
38 string command = argv[0];
41 for (int i = 1; i < argc; i++) {
42 args.push_back(argv[i]);
45 /** Load environment variable */
46 if (args.size() > 0) {
47 string envName = args[0];
48 boost::optional<string> outputModule = getenv(envName);
50 if (outputModule.is_initialized()) {
51 cout << "ENV: " << envName << " = " << outputModule.get() << endl;
53 cout << "ENV: " << envName << " is missing" << endl;
59 shared_ptr<OutputModule> om(new OutputModule());
60 shared_ptr<TerminalOutputModule> tom(new TerminalOutputModule());
61 shared_ptr<OutputModule> o(new TerminalOutputModule());
63 om->process(cout, command, args);
64 tom->process(cout, command, args);
65 o->process(cout, command, args);