Chromium Code Reviews| Index: tools/battor_agent/battor_agent_bin.cc |
| diff --git a/tools/battor_agent/battor_agent_bin.cc b/tools/battor_agent/battor_agent_bin.cc |
| index 360146dd39d81771ec4d0d8779fa84e99147d973..6f16a989854013ced082a73d496c69e322835dbe 100644 |
| --- a/tools/battor_agent/battor_agent_bin.cc |
| +++ b/tools/battor_agent/battor_agent_bin.cc |
| @@ -19,6 +19,7 @@ |
| #include "base/threading/thread.h" |
| #include "tools/battor_agent/battor_agent.h" |
| #include "tools/battor_agent/battor_error.h" |
| +#include "tools/battor_agent/battor_finder.h" |
| using std::cout; |
| using std::endl; |
| @@ -47,12 +48,11 @@ void PrintSupportsExplicitClockSync() { |
| cout << battor::BattOrAgent::SupportsExplicitClockSync() << endl; |
| } |
| -// Retrieves argument argnum from the argument list, printing the usage |
| -// guidelines and exiting with an error code if the argument doesn't exist. |
| +// Retrieves argument argnum from the argument list, or an empty string if the |
| +// argument doesn't exist. |
| std::string GetArg(int argnum, int argc, char* argv[]) { |
| if (argnum >= argc) { |
| - PrintUsage(); |
| - exit(1); |
| + return ""; |
|
sky
2016/01/21 22:59:20
nit: std::string()
charliea (OOO until 10-5)
2016/01/22 16:11:03
Done.
|
| } |
| return argv[argnum]; |
| @@ -89,6 +89,10 @@ class BattOrAgentBin : public BattOrAgent::Listener { |
| // Runs the BattOr binary and returns the exit code. |
| int Run(int argc, char* argv[]) { |
| std::string cmd = GetArg(1, argc, argv); |
| + if (cmd.empty()) { |
| + PrintUsage(); |
| + exit(1); |
| + } |
| // SupportsExplicitClockSync doesn't need to use the serial connection, so |
| // handle it separately. |
| @@ -98,6 +102,18 @@ class BattOrAgentBin : public BattOrAgent::Listener { |
| } |
| std::string path = GetArg(2, argc, argv); |
| + // If no path is specified, see if we can find a BattOr and use that. |
| + if (path.empty()) |
| + path = BattOrFinder::FindBattOr(); |
| + |
| + // If we don't have any BattOr to use, exit. |
| + if (path.empty()) { |
| + cout << "Unable to find a BattOr, and no explicit BattOr path was " |
| + "specified." |
| + << endl; |
| + exit(1); |
| + } |
| + |
| SetUp(path); |
| if (cmd == "StartTracing") { |