OdbDesignLib
OdbDesign ODB++ Parsing Library
OdbDesignArgs.cpp
1 #include "OdbDesignArgs.h"
2 #include <sstream>
3 
4 namespace Odb::Lib::App
5 {
6  OdbDesignArgs::OdbDesignArgs(int argc, char* argv[])
7  : CommandLineArgs(argc, argv)
8  {
9  }
10 
11  int OdbDesignArgs::port() const
12  {
13  return intArg("port", DEFAULT_PORT);
14  }
15 
16  bool OdbDesignArgs::useHttps() const
17  {
18  return boolArg("use-https", DEFAULT_USE_HTTPS);
19  }
20 
21  std::string OdbDesignArgs::sslDir() const
22  {
23  return stringArg("ssl-dir", DEFAULT_SSL_DIR);
24  }
25 
26  std::string OdbDesignArgs::designsDir() const
27  {
28  return stringArg("designs-dir", DEFAULT_DESIGNS_DIR);
29  }
30 
31  std::string OdbDesignArgs::templatesDir() const
32  {
33  return stringArg("templates-dir", DEFAULT_TEMPLATES_DIR);
34  }
35 
36  bool OdbDesignArgs::help() const
37  {
38  return boolArg("help", DEFAULT_HELP);
39  }
40 
41  std::string OdbDesignArgs::loadDesign() const
42  {
43  return stringArg("load-design", DEFAULT_LOAD_DESIGN);
44  }
45 
46  bool OdbDesignArgs::loadAll() const
47  {
48  return boolArg("load-all", DEFAULT_LOAD_ALL);
49  }
50 
51  bool OdbDesignArgs::disableAuthentication() const
52  {
53  return boolArg("disable-authentication", DEFAULT_DISABLE_AUTH);
54  }
55 
56  std::string OdbDesignArgs::getUsageString() const
57  {
58  std::stringstream ss;
59  ss << "Usage: " << executableName() << " [options]\n";
60  ss << "Options:\n";
61  ss << " --port <port> Port to listen on (default: " << DEFAULT_PORT << ")\n";
62  ss << " --use-https Use HTTPS (default: " << (DEFAULT_USE_HTTPS ? "true" : "false") << ")\n";
63  ss << " --ssl-dir <dir> Directory containing SSL certificate and key files (default: " << DEFAULT_SSL_DIR << ")\n";
64  ss << " --designs-dir <dir> Directory containing design files (default: " << DEFAULT_DESIGNS_DIR << ")\n";
65  ss << " --templates-dir <dir> Directory containing template files (default: " << DEFAULT_TEMPLATES_DIR << ")\n";
66  ss << " --load-design <design> Design to load on startup (default: " << DEFAULT_LOAD_DESIGN << ")\n";
67  ss << " --load-all Load all designs on startup (default: " << (DEFAULT_LOAD_ALL ? "true" : "false") << ")\n";
68  ss << " --disable-authentication Disable authentication (default: " << (DEFAULT_DISABLE_AUTH ? "true" : "false") << ")\n";
69  ss << " --help Print this help message\n";
70  return ss.str();
71  }
72 }