Support FRU Type in vpd tool

Test:
./vpd-tool --dumpObject  --object  /system/chassis/motherboard/cpu0
[
    {
        "/system/chassis/motherboard/cpu0": {
            "CC": "CB41",
            "DR": "A WAY  PROC CUOD",
            "FN": "1234567",
            "LocationCode": "U78DA.ND1.1234567-P0-C15",
            "PN": "1345678",
            "SN": "YLAB41010000",
            "TYPE": "fruAndModule",  <=================================
            "type": "xyz.openbmc_project.Inventory.Item.Cpu"
        }
    }
]

./vpd-tool --dumpObject  --object  /system/chassis/motherboard/cpu1
[
    {
        "/system/chassis/motherboard/cpu1": {
            "CC": "BB41",
            "DR": "A WAY  PROC CUOD",
            "FN": "1234567",
            "LocationCode": "U78DA.ND1.1234567-P0-C15",
            "PN": "1345678",
            "SN": "YLAB41010000",
            "TYPE": "moduleOnly",    <==================================
            "type": "xyz.openbmc_project.Inventory.Item.Cpu"
        }
    }
]

 ./vpd-tool --dumpObject  --object  /system/chassis/motherboard/ebmc_card_bmc
[
    {
        "/system/chassis/motherboard/ebmc_card_bmc": {
            "CC": "6B58",
            "DR": "EBMC            ",
            "FN": "F191014",
            "LocationCode": "U78DA.ND1.1234567-P0-C5",
            "PN": "PN12345",
            "SN": "YL6B58010000",
            "TYPE": "FRU",             <=================================
            "type": "xyz.openbmc_project.Inventory.Item.Bmc"
        }
    }
]

Change-Id: Ie36631913481514e9f06bd50415a3d6b057f8510
Signed-off-by: Alpana Kumari <alpankum@in.ibm.com>
diff --git a/vpd_tool_impl.cpp b/vpd_tool_impl.cpp
index fa1f57e..c24eb93 100644
--- a/vpd_tool_impl.cpp
+++ b/vpd_tool_impl.cpp
@@ -127,6 +127,8 @@
     }
 
     addFruTypeAndLocation(exIntf, objectName, kwVal);
+    kwVal.emplace("TYPE", fruType);
+
     output.emplace(invPath, kwVal);
     return output;
 }
@@ -172,6 +174,13 @@
 
     bool exIntfCheck = false;
     json output = json::object({});
+    fruType = "FRU";
+
+    // check type and add FRU Type in object
+    if (itemEEPROM.find("type") != itemEEPROM.end())
+    {
+        fruType = itemEEPROM.at("type");
+    }
 
     if (itemEEPROM.value("inherit", true))
     {
@@ -194,6 +203,7 @@
         }
         output.emplace(itemEEPROM.at("inventoryPath"), js);
     }
+
     return output;
 }
 
diff --git a/vpd_tool_impl.hpp b/vpd_tool_impl.hpp
index 852638c..3062c3b 100644
--- a/vpd_tool_impl.hpp
+++ b/vpd_tool_impl.hpp
@@ -14,6 +14,9 @@
     const std::string keyword;
     const std::string value;
 
+    // Store Type of FRU
+    std::string fruType;
+
     /**
      * @brief Debugger
      * Displays the output in JSON.