| // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Implementation of the 'bootstat' command, part of the Chromium OS |
| // 'bootstat' facility. The command provides a command line wrapper |
| // around the key functionality declared in "bootstat.h" |
| |
| #include <libgen.h> |
| #include <stdio.h> |
| |
| #include <string> |
| |
| #include "base/command_line.h" |
| |
| #include "bootstat/bootstat.h" |
| |
| namespace { |
| |
| void usage(char* cmd) { |
| fprintf(stderr, "usage: %s [--sync=rtc] <event-name>\n", basename(cmd)); |
| exit(EXIT_FAILURE); |
| } |
| |
| } // namespace |
| |
| int main(int argc, char* argv[]) { |
| base::CommandLine::Init(argc, argv); |
| base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| base::CommandLine::StringVector args = cl->GetArgs(); |
| |
| // Event name must always be provided (and only that). |
| if (args.size() != 1) |
| usage(argv[0]); |
| |
| if (cl->HasSwitch("sync")) { |
| std::string sync = cl->GetSwitchValueASCII("sync"); |
| if (sync == "rtc") |
| bootstat::BootStat().LogRtcSync(args[0].c_str()); |
| else |
| usage(argv[0]); |
| } else { |
| bootstat::BootStat().LogEvent(args[0].c_str()); |
| } |
| return EXIT_SUCCESS; |
| } |