gpio-presence: Pass drivers in to application
With the optional --drivers argument, pass in the
path/device pairs to bind/unbind. That string will be parsed,
and then passed into the Presence class.
Change-Id: I1ac0e005de673a679dcb45e93bcac35fddf24d01
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/presence/argument.cpp b/presence/argument.cpp
index 0fa94d0..a4b664e 100644
--- a/presence/argument.cpp
+++ b/presence/argument.cpp
@@ -29,13 +29,14 @@
const std::string ArgumentParser::trueString = "true"s;
const std::string ArgumentParser::emptyString = ""s;
-const char* ArgumentParser::optionStr = "p:k:n:i:?h";
+const char* ArgumentParser::optionStr = "p:k:n:i:d:?h";
const option ArgumentParser::options[] =
{
{ "path", required_argument, nullptr, 'p' },
{ "key", required_argument, nullptr, 'k' },
{ "name", required_argument, nullptr, 'n' },
{ "inventory", required_argument, nullptr, 'i' },
+ { "drivers", required_argument, nullptr, 'd' },
{ "help", no_argument, nullptr, 'h' },
{ 0, 0, 0, 0},
};
@@ -90,6 +91,12 @@
std::cerr << " --key=<key> Input GPIO key number\n";
std::cerr << " --name=<name> Pretty name of the inventory"
" item\n";
+ std::cerr << " --drivers=<drivers> List of drivers to bind when card"
+ " is added and unbind when card is removed\n";
+ std::cerr << " Format is a space separated list"
+ " of path,device pairs. For example:\n";
+ std::cerr << " "
+ "/sys/bus/i2c/drivers/some-driver,3-0068\n";
std::cerr << std::flush;
exit(-1);
}