blob: 17a932805913e300d21f23735fb5106a1044b704 [file] [log] [blame] [edit]
// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
use std::process::Command;
use super::CommandRunner;
use crate::output::HwsecOutput;
pub struct RealCommandRunner;
impl CommandRunner for RealCommandRunner {
fn run(&mut self, cmd_name: &str, args: Vec<&str>) -> Result<HwsecOutput, std::io::Error> {
Command::new(cmd_name)
.args(args)
.output()
.map(HwsecOutput::from_output)
}
fn output(&mut self, cmd_name: &str, args: Vec<&str>) -> Result<String, std::io::Error> {
let run_result = self.run(cmd_name, args)?;
Ok(String::from_utf8_lossy(&run_result.stdout).to_string())
}
}