Rename tool/ as pldmtool/
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Change-Id: I38d7a6ab907014cd5fca049b095d692d069feab1
diff --git a/pldmtool/pldmtool.cpp b/pldmtool/pldmtool.cpp
new file mode 100644
index 0000000..4b65b2a
--- /dev/null
+++ b/pldmtool/pldmtool.cpp
@@ -0,0 +1,82 @@
+#include "pldm_base_cmd.hpp"
+#include "pldm_bios_cmd.hpp"
+#include "pldm_cmd_helper.hpp"
+#include "pldm_fru_cmd.hpp"
+#include "pldm_platform_cmd.hpp"
+#include "pldmtool/oem/ibm/pldm_host_cmd.hpp"
+
+#include <CLI/CLI.hpp>
+
+namespace pldmtool
+{
+
+namespace raw
+{
+
+using namespace pldmtool::helper;
+
+namespace
+{
+std::vector<std::unique_ptr<CommandInterface>> commands;
+}
+
+class RawOp : public CommandInterface
+{
+ public:
+ ~RawOp() = default;
+ RawOp() = delete;
+ RawOp(const RawOp&) = delete;
+ RawOp(RawOp&&) = default;
+ RawOp& operator=(const RawOp&) = delete;
+ RawOp& operator=(RawOp&&) = default;
+
+ explicit RawOp(const char* type, const char* name, CLI::App* app) :
+ CommandInterface(type, name, app)
+ {
+ app->add_option("-d,--data", rawData, "raw data")
+ ->required()
+ ->expected(-3);
+ }
+ std::pair<int, std::vector<uint8_t>> createRequestMsg() override
+
+ {
+ return {PLDM_SUCCESS, rawData};
+ }
+
+ void parseResponseMsg(pldm_msg* /* responsePtr */,
+ size_t /* payloadLength */) override
+ {}
+
+ private:
+ std::vector<uint8_t> rawData;
+};
+
+void registerCommand(CLI::App& app)
+{
+ auto raw =
+ app.add_subcommand("raw", "send a raw request and print response");
+ commands.push_back(std::make_unique<RawOp>("raw", "raw", raw));
+}
+
+} // namespace raw
+} // namespace pldmtool
+
+int main(int argc, char** argv)
+{
+
+ CLI::App app{"PLDM requester tool for OpenBMC"};
+ app.require_subcommand(1)->ignore_case();
+
+ pldmtool::raw::registerCommand(app);
+ pldmtool::base::registerCommand(app);
+ pldmtool::bios::registerCommand(app);
+ pldmtool::platform::registerCommand(app);
+ pldmtool::fru::registerCommand(app);
+
+#ifdef OEM_IBM
+ pldmtool::oem_ibm::power_host::registerCommand(app);
+#endif
+
+ CLI11_PARSE(app, argc, argv);
+ return 0;
+}