blob: fe816b12a28e60287f62b82d43ad02081935fdc7 [file] [log] [blame] [edit]
// Copyright 2024 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Provides the command "evtest" for crosh.
use std::process;
use crate::dispatcher::{self, wait_for_result, Arguments, Command, Dispatcher};
pub fn register(dispatcher: &mut Dispatcher) {
dispatcher.register_command(
Command::new("evtest", "", "Run evtest in safe mode.")
.set_command_callback(Some(execute_evtest)),
);
}
fn execute_evtest(_cmd: &Command, args: &Arguments) -> Result<(), dispatcher::Error> {
if !args.get_args().is_empty() {
return Err(dispatcher::Error::CommandInvalidArguments(String::from(
"No argument is allowed",
)));
}
// --safe is "safe" mode, which will only print limited info.
// We don't allow any other arguments now. Any attempt to enable more
// features should go through security review first.
wait_for_result(
process::Command::new("evtest")
.arg("--safe")
.spawn()
.or(Err(dispatcher::Error::CommandReturnedError))?,
)
}