blob: 5733e09dd443e446baa2566c909decad1e5119f2 [file] [log] [blame]
Jayanth Othayoth0aa0d112018-09-03 03:47:27 -05001#include "argument.hpp"
2
Nan Zhou7047be62022-03-10 12:34:06 -08003#include "certificate.hpp"
Jayanth Othayoth0aa0d112018-09-03 03:47:27 -05004
Nan Zhou7047be62022-03-10 12:34:06 -08005#include <CLI/CLI.hpp>
6
7namespace phosphor::certs
Jayanth Othayoth0aa0d112018-09-03 03:47:27 -05008{
9
Nan Zhou7047be62022-03-10 12:34:06 -080010int processArguments(int argc, const char* const* argv, Arguments& arguments)
Jayanth Othayoth0aa0d112018-09-03 03:47:27 -050011{
Nan Zhou7047be62022-03-10 12:34:06 -080012 CLI::App app{"OpenBMC Certificate Management Daemon"};
13 app.add_option("-t,--type", arguments.typeStr, "certificate type")
14 ->required();
15 app.add_option("-e,--endpoint", arguments.endpoint, "d-bus endpoint")
16 ->required();
17 app.add_option("-p,--path", arguments.path, "certificate file path")
18 ->required();
19 app.add_option("-u,--unit", arguments.unit,
20 "Optional systemd unit need to reload")
21 ->capture_default_str();
22 CLI11_PARSE(app, argc, argv);
23 phosphor::certs::CertificateType type =
24 phosphor::certs::stringToCertificateType(arguments.typeStr);
Nan Zhoue3d47cd2022-09-16 03:41:53 +000025 if (type == phosphor::certs::CertificateType::unsupported)
Jayanth Othayoth0aa0d112018-09-03 03:47:27 -050026 {
Nan Zhou7047be62022-03-10 12:34:06 -080027 std::cerr << "type not specified or invalid." << std::endl;
28 return 1;
Jayanth Othayoth0aa0d112018-09-03 03:47:27 -050029 }
Nan Zhou7047be62022-03-10 12:34:06 -080030 return 0;
Jayanth Othayoth0aa0d112018-09-03 03:47:27 -050031}
Nan Zhou7047be62022-03-10 12:34:06 -080032} // namespace phosphor::certs