diff options
Diffstat (limited to 'argument.cpp')
-rw-r--r-- | argument.cpp | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/argument.cpp b/argument.cpp deleted file mode 100644 index fa0d4bc..0000000 --- a/argument.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/** - * Copyright © 2016 IBM Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "argument.hpp" - -#include <cassert> -#include <iostream> - -namespace phosphor -{ -namespace watchdog -{ - -using namespace std::string_literals; - -const std::vector<std::string> emptyArg; -const std::string ArgumentParser::trueString = "true"s; - -const char* ArgumentParser::optionStr = "p:s:t:a:f:i:ech"; -// clang-format off -const option ArgumentParser::options[] = -{ - { "path", required_argument, nullptr, 'p' }, - { "service", required_argument, nullptr, 's' }, - { "target", required_argument, nullptr, 't' }, - { "action_target", required_argument, nullptr, 'a' }, - { "fallback_action", required_argument, nullptr, 'f' }, - { "fallback_interval", required_argument, nullptr, 'i' }, - { "fallback_always", no_argument, nullptr, 'e' }, - { "continue", no_argument, nullptr, 'c' }, - { "help", no_argument, nullptr, 'h' }, - { 0, 0, 0, 0}, -}; -// clang-format on - -ArgumentParser::ArgumentParser(int argc, char* const argv[]) -{ - int option; - int opt_idx = 0; - - // We have to reset optind because getopt_long keeps global state - // and uses optind to track what argv index it needs to process next. - // Since this object may be instantiated more than once or test suites may - // already process instructions, optind may not be initialized to point to - // the beginning of our argv. - optind = 0; - while (-1 != - (option = getopt_long(argc, argv, optionStr, options, &opt_idx))) - { - if (option == '?' || option == 'h') - { - usage(argv); - exit(-1); - } - - auto i = &options[opt_idx]; - while (i->val && i->val != option) - { - ++i; - } - - if (i->val) - { - arguments[i->name].push_back(optarg ? optarg : trueString); - } - - opt_idx = 0; - } -} - -const std::vector<std::string>& ArgumentParser:: - operator[](const std::string& opt) -{ - auto i = arguments.find(opt); - if (i == arguments.end()) - { - return emptyArg; - } - else - { - return i->second; - } -} - -void ArgumentParser::usage(char* const argv[]) -{ - std::cerr << "Usage: " << argv[0] << " options\n"; - std::cerr << "Options:\n"; - std::cerr << " --help Print this menu\n"; - std::cerr << " --path=<Dbus Object path> Dbus Object path. " - "Ex: /xyz/openbmc_project/state/watchdog/host0\n"; - std::cerr << " --service=<Dbus Service name> Dbus Service " - "name. Ex: xyz.openbmc_project.State.Watchdog.Host\n"; - std::cerr << " [--target=<systemd unit>] Systemd unit to " - "be called on timeout for all actions but NONE. " - "Deprecated, use --action_target instead.\n"; - std::cerr << " [--action_target=<action>=<systemd unit>] Map of action to " - "systemd unit to be called on timeout if that action is " - "set for ExpireAction when the timer expires.\n"; - std::cerr << " [--fallback_action=<action>] Enables the " - "watchdog even when disabled via the dbus interface. " - "Perform this action when the fallback expires.\n"; - std::cerr << " [--fallback_interval=<interval in ms>] Enables the " - "watchdog even when disabled via the dbus interface. " - "Waits for this interval before performing the fallback " - "action.\n"; - std::cerr << " [--fallback_always] Enables the " - "watchdog even when disabled by the dbus interface. " - "This option is only valid with a fallback specified.\n"; - std::cerr << " [--continue] Continue daemon " - "after watchdog timeout.\n"; -} -} // namespace watchdog -} // namespace phosphor |