From b1f90eff1157d73f8fd2073b45aefc845f1484a2 Mon Sep 17 00:00:00 2001 From: DTB Date: Thu, 18 Apr 2024 22:36:24 -0600 Subject: [PATCH] retval(1): Rewrite in Rust --- {peek => Retired/peek}/Makefile | 0 {peek => Retired/peek}/peek.1 | 0 {peek => Retired/peek}/peek.c | 0 retval/Makefile | 6 ++++-- retval/retval.rs | 18 ++++++++++++++++++ 5 files changed, 22 insertions(+), 2 deletions(-) rename {peek => Retired/peek}/Makefile (100%) rename {peek => Retired/peek}/peek.1 (100%) rename {peek => Retired/peek}/peek.c (100%) create mode 100644 retval/retval.rs diff --git a/peek/Makefile b/Retired/peek/Makefile similarity index 100% rename from peek/Makefile rename to Retired/peek/Makefile diff --git a/peek/peek.1 b/Retired/peek/peek.1 similarity index 100% rename from peek/peek.1 rename to Retired/peek/peek.1 diff --git a/peek/peek.c b/Retired/peek/peek.c similarity index 100% rename from peek/peek.c rename to Retired/peek/peek.c diff --git a/retval/Makefile b/retval/Makefile index f954e17..ecbf7af 100644 --- a/retval/Makefile +++ b/retval/Makefile @@ -1,2 +1,4 @@ -retval: retval.c - $(CC) -o retval retval.c +RUSTC = rustc + +retval: retval.rs + $(RUSTC) $(RUSTCFLAGS) -o retval retval.rs diff --git a/retval/retval.rs b/retval/retval.rs new file mode 100644 index 0000000..50de9c0 --- /dev/null +++ b/retval/retval.rs @@ -0,0 +1,18 @@ +use std::{env::args, process::ExitCode}; + +fn usage(s: &str) -> ExitCode { + eprintln!("Usage: {} [status]", s); + ExitCode::from(64 /* NetBSD sysexits(3) EX_USAGE */) +} + +fn main() -> ExitCode { + let argv = args().collect::>(); + + match argv.len() { + 2 => match argv[1].parse::() { + Ok(e) => ExitCode::from(e), + _ => usage(&argv[0]), + }, + _ => usage(&argv[0]), + } +}