From fef0295a8d87754e491dcf133ea927b5c4d56303 Mon Sep 17 00:00:00 2001 From: Brandon Wyman Date: Fri, 31 Mar 2017 18:13:21 -0500 Subject: Fill in shell functions/files for cooling type. Change-Id: I8d18d3141e955adeffdd8122ebb17549c88edd77 Signed-off-by: Brandon Wyman --- cooling-type/main.cpp | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 cooling-type/main.cpp (limited to 'cooling-type/main.cpp') diff --git a/cooling-type/main.cpp b/cooling-type/main.cpp new file mode 100644 index 0000000..cddbe31 --- /dev/null +++ b/cooling-type/main.cpp @@ -0,0 +1,75 @@ +#include +#include //make_unique +#include +#include +#include "argument.hpp" +#include "cooling_type.hpp" + +using namespace phosphor::cooling::type; +using namespace phosphor::logging; + +// Utility function to find the device string for a given pin name. +std::string findGpio(std::string pinName) +{ + std::string path = "/dev/null"; + //TODO + return path; +} + +int main(int argc, char* argv[]) +{ + auto rc = -1; + auto options = ArgumentParser(argc, argv); + + auto objpath = (options)["path"]; + if (argc < 2) + { + std::cerr << std::endl << "Too few arguments" << std::endl; + log("Too few arguments"); + options.usage(argv); + } + else if (objpath == ArgumentParser::empty_string) + { + log("Bus path argument required"); + } + else + { + auto bus = sdbusplus::bus::new_default(); + CoolingType coolingType(bus); + + auto gpiopin = (options)["gpio"]; + if (gpiopin != ArgumentParser::empty_string) + { + try + { + auto gpiopath = findGpio(gpiopin); + coolingType.setupGpio(gpiopath); + } + catch (std::exception& err) + { + rc = -1; + log(err.what()); + } + } + + auto air = (options)["air"]; + if (air != ArgumentParser::empty_string) + { + coolingType.setAirCooled(); + } + + auto water = (options)["water"]; + if (water != ArgumentParser::empty_string) + { + coolingType.setWaterCooled(); + } + + coolingType.updateInventory(objpath); + + rc = 0; + } + + return rc; +} + +// vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 -- cgit v1.2.1