Add base support for GPIO presence

This is the starting code needed to build the application.

Change-Id: I46112a222afbc057ac4fc4f8fb2b4c83822023df
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
diff --git a/presence/main.cpp b/presence/main.cpp
new file mode 100644
index 0000000..3c7c3cf
--- /dev/null
+++ b/presence/main.cpp
@@ -0,0 +1,42 @@
+#include <iostream>
+#include <phosphor-logging/log.hpp>
+#include "argument.hpp"
+#include "gpio_presence.hpp"
+
+using namespace phosphor::logging;
+using namespace phosphor::gpio;
+
+int main(int argc, char* argv[])
+{
+    auto options = ArgumentParser(argc, argv);
+
+    auto inventory = options["inventory"];
+    auto key = options["key"];
+    auto path = options["path"];
+    if (argc < 4)
+    {
+        std::cerr << "Too few arguments\n";
+        options.usage(argv);
+    }
+
+    if (inventory == ArgumentParser::emptyString)
+    {
+        std::cerr << "Inventory argument required\n";
+        options.usage(argv);
+    }
+
+    if (key == ArgumentParser::emptyString)
+    {
+        std::cerr << "GPIO key argument required\n";
+        options.usage(argv);
+    }
+
+    if (path == ArgumentParser::emptyString)
+    {
+        std::cerr << "Device path argument required\n";
+        options.usage(argv);
+    }
+
+    return 0;
+}
+