diff options
Diffstat (limited to 'control/main.cpp')
-rw-r--r-- | control/main.cpp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/control/main.cpp b/control/main.cpp index 08a7dc9..be5b59e 100644 --- a/control/main.cpp +++ b/control/main.cpp @@ -14,13 +14,46 @@ * limitations under the License. */ #include <sdbusplus/bus.hpp> +#include "argument.hpp" #include "manager.hpp" +using namespace phosphor::fan::control; + int main(int argc, char* argv[]) { auto bus = sdbusplus::bus::new_default(); + phosphor::fan::util::ArgumentParser args(argc, argv); + + if (argc != 2) + { + args.usage(argv); + exit(-1); + } - phosphor::fan::control::Manager manager(bus); + Manager::Mode mode; + + if (args["init"] == "true") + { + mode = Manager::Mode::init; + } + else if (args["control"] == "true") + { + mode = Manager::Mode::control; + } + else + { + args.usage(argv); + exit(-1); + } + + Manager manager(bus, mode); + + //Init mode will just set fans to max and delay + if (mode == Manager::Mode::init) + { + manager.doInit(); + return 0; + } while (true) { |