xref: /openbmc/phosphor-certificate-manager/argument.cpp (revision e3d47cd468699980157aa901eae269f49b3a0218)
10aa0d114SJayanth Othayoth #include "argument.hpp"
20aa0d114SJayanth Othayoth 
37047be67SNan Zhou #include "certificate.hpp"
40aa0d114SJayanth Othayoth 
57047be67SNan Zhou #include <CLI/CLI.hpp>
67047be67SNan Zhou 
77047be67SNan Zhou namespace phosphor::certs
80aa0d114SJayanth Othayoth {
90aa0d114SJayanth Othayoth 
processArguments(int argc,const char * const * argv,Arguments & arguments)107047be67SNan Zhou int processArguments(int argc, const char* const* argv, Arguments& arguments)
110aa0d114SJayanth Othayoth {
127047be67SNan Zhou     CLI::App app{"OpenBMC Certificate Management Daemon"};
137047be67SNan Zhou     app.add_option("-t,--type", arguments.typeStr, "certificate type")
147047be67SNan Zhou         ->required();
157047be67SNan Zhou     app.add_option("-e,--endpoint", arguments.endpoint, "d-bus endpoint")
167047be67SNan Zhou         ->required();
177047be67SNan Zhou     app.add_option("-p,--path", arguments.path, "certificate file path")
187047be67SNan Zhou         ->required();
197047be67SNan Zhou     app.add_option("-u,--unit", arguments.unit,
207047be67SNan Zhou                    "Optional systemd unit need to reload")
217047be67SNan Zhou         ->capture_default_str();
227047be67SNan Zhou     CLI11_PARSE(app, argc, argv);
237047be67SNan Zhou     phosphor::certs::CertificateType type =
247047be67SNan Zhou         phosphor::certs::stringToCertificateType(arguments.typeStr);
25*e3d47cd4SNan Zhou     if (type == phosphor::certs::CertificateType::unsupported)
260aa0d114SJayanth Othayoth     {
277047be67SNan Zhou         std::cerr << "type not specified or invalid." << std::endl;
287047be67SNan Zhou         return 1;
290aa0d114SJayanth Othayoth     }
307047be67SNan Zhou     return 0;
310aa0d114SJayanth Othayoth }
327047be67SNan Zhou } // namespace phosphor::certs
33