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;
+}