31 lines
663 B
Rust
31 lines
663 B
Rust
use std::{env, fs::OpenOptions, io, path::Path, process::ExitCode};
|
|
|
|
fn touch<P: AsRef<Path>>(path: P) -> Result<(), io::Error> {
|
|
OpenOptions::new()
|
|
.create(true)
|
|
.write(true)
|
|
.truncate(false)
|
|
.open(path)?;
|
|
Ok(())
|
|
}
|
|
|
|
fn main() -> ExitCode {
|
|
let mut args = env::args();
|
|
|
|
if args.len() < 2 {
|
|
eprintln!("Usage: {} FILES", args.next().unwrap());
|
|
return ExitCode::FAILURE;
|
|
}
|
|
|
|
let mut result = ExitCode::SUCCESS;
|
|
|
|
for arg in args.skip(1) {
|
|
if let Err(err) = touch(&arg) {
|
|
eprintln!("{}: {}", arg, err);
|
|
result = ExitCode::FAILURE;
|
|
}
|
|
}
|
|
|
|
result
|
|
}
|