summaryrefslogtreecommitdiffstats
path: root/control/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'control/main.cpp')
-rw-r--r--control/main.cpp35
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)
{
OpenPOWER on IntegriCloud