blob: da0530daf0fc9c7b91c85a1879f16ad4d1cd4375 [file] [log] [blame]
// SPDX-License-Identifier: Apache-2.0 OR BSD-3-Clause
// SPDX-FileCopyrightText: 2022 Linaro Ltd.
// SPDX-FileCopyrightText: 2022 Viresh Kumar <viresh.kumar@linaro.org>
//
// Simplified Rust implementation of gpiofind tool.
use std::env;
use std::path::Path;
use libgpiod::{self, Error, Result};
fn main() -> Result<()> {
let args: Vec<String> = env::args().collect();
if args.len() != 2 {
println!("Usage: {} <line-name>", args[0]);
return Err(Error::InvalidArguments);
}
for chip in libgpiod::gpiochip_devices(&Path::new("/dev"))? {
let offset = chip.line_offset_from_name(&args[1]);
let info = chip.info()?;
if offset.is_ok() {
println!(
"Line {} found: Chip: {}, offset: {}",
args[1],
info.name()?,
offset?
);
return Ok(());
}
}
println!("Failed to find line: {}", args[1]);
Ok(())
}