/* * Copyright 2023 The Android Open Source Project * * 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 #include #include #include #include #include #include "common/libs/utils/result.h" #include "host/libs/metrics/metrics_receiver.h" namespace cuttlefish { namespace { Result MetricsLauncherMain() { while (true) { std::cout << "Please choose an action: \n"; std::cout << " start - send start event to cuttlefish metrics client \n"; std::cout << " stop - send stop event to cuttlefish metrics client \n"; std::cout << " boot - send boot event to cuttlefish metrics client\n"; std::cout << " lock - send lock event to cuttlefish metrics client\n"; std::cout << " atest - send launch command to atest metrics client \n"; std::cout << " exit - exit the program \n"; std::string command; std::getline(std::cin, command); if (command == "start") { cuttlefish::MetricsReceiver::LogMetricsVMStart(); } else if (command == "stop") { cuttlefish::MetricsReceiver::LogMetricsVMStop(); } else if (command == "boot") { cuttlefish::MetricsReceiver::LogMetricsDeviceBoot(); } else if (command == "lock") { cuttlefish::MetricsReceiver::LogMetricsLockScreen(); } else if (command == "exit") { break; } else { LOG(ERROR) << "Unknown command: " << command; } } return {}; } } // namespace } // namespace cuttlefish int main(int argc, char** argv) { ::android::base::InitLogging(argv, android::base::StderrLogger); google::ParseCommandLineFlags(&argc, &argv, true); cuttlefish::Result result = cuttlefish::MetricsLauncherMain(); if (!result.ok()) { LOG(ERROR) << result.error().FormatForEnv(); return EXIT_FAILURE; } return EXIT_SUCCESS; }