Skip to content

Commit fa5d194

Browse files
committed
sys: Use compile-time macro env!
1 parent 8fe9286 commit fa5d194

File tree

6 files changed

+47
-45
lines changed

6 files changed

+47
-45
lines changed

sys/getconf.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
// - Proper -v specification support. is it even necessary?
1313
//
1414

15+
use std::collections::HashMap;
16+
use std::ffi::CString;
17+
1518
use clap::Parser;
1619
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
1720
use libc::{pathconf, sysconf};
18-
use plib::PROJECT_NAME;
19-
use std::collections::HashMap;
20-
use std::ffi::CString;
2121

2222
#[derive(Parser)]
2323
#[command(version, about = gettext("getconf - get configuration values"))]
@@ -324,13 +324,11 @@ fn load_pathconf_mapping() -> HashMap<&'static str, libc::c_int> {
324324
}
325325

326326
fn main() -> Result<(), Box<dyn std::error::Error>> {
327-
// Parse command line arguments
328-
let args = Args::parse();
329-
330-
// Set locale and text domain for localization
331327
setlocale(LocaleCategory::LcAll, "");
332-
textdomain(PROJECT_NAME)?;
333-
bind_textdomain_codeset(PROJECT_NAME, "UTF-8")?;
328+
textdomain(env!("PROJECT_NAME"))?;
329+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
330+
331+
let args = Args::parse();
334332

335333
if let Some(pathname) = args.pathname {
336334
let pathconf_mappings = load_pathconf_mapping();

sys/ipcrm.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
// SPDX-License-Identifier: MIT
88
//
99

10+
use std::ffi::{c_int, c_ushort};
11+
use std::io::{self, Error, ErrorKind};
12+
use std::ptr;
13+
1014
use clap::Parser;
1115
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
1216
#[cfg(not(target_os = "macos"))]
1317
use libc::{msgctl, msgget, msqid_ds};
1418
use libc::{semctl, semget, shmctl, shmget, shmid_ds};
15-
use plib::PROJECT_NAME;
16-
use std::ffi::{c_int, c_ushort};
17-
use std::io::{self, Error, ErrorKind};
18-
use std::ptr;
1919

2020
#[derive(Parser)]
2121
#[command(
@@ -197,12 +197,11 @@ fn remove_ipcs(args: &Args) -> io::Result<()> {
197197
}
198198

199199
fn main() -> Result<(), Box<dyn std::error::Error>> {
200-
// parse command line arguments
201-
let args = Args::parse();
202-
203200
setlocale(LocaleCategory::LcAll, "");
204-
textdomain(PROJECT_NAME)?;
205-
bind_textdomain_codeset(PROJECT_NAME, "UTF-8")?;
201+
textdomain(env!("PROJECT_NAME"))?;
202+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
203+
204+
let args = Args::parse();
206205

207206
let mut exit_code = 0;
208207

sys/ipcs.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
use chrono::Local;
1111
use clap::Parser;
1212
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
13-
use plib::PROJECT_NAME;
1413

1514
/// ipcs - report XSI interprocess communication facilities status
1615
#[derive(Parser)]
@@ -260,12 +259,10 @@ fn display_ipc_status(args: &Args) {
260259
}
261260

262261
fn main() -> Result<(), Box<dyn std::error::Error>> {
263-
// Set locale and text domain for localization
264262
setlocale(LocaleCategory::LcAll, "");
265-
textdomain(PROJECT_NAME)?;
266-
bind_textdomain_codeset(PROJECT_NAME, "UTF-8")?;
263+
textdomain(env!("PROJECT_NAME"))?;
264+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
267265

268-
// Parse command line arguments
269266
let mut args = Args::parse();
270267

271268
// Validate arguments and determine what to display

sys/ps.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ mod psmacos;
1313
#[cfg(target_os = "linux")]
1414
mod pslinux;
1515

16-
use clap::Parser;
1716
use std::collections::HashMap;
1817

18+
use clap::Parser;
19+
use gettextrs::{bind_textdomain_codeset, setlocale, textdomain, LocaleCategory};
20+
1921
#[cfg(target_os = "macos")]
2022
mod platform {
2123
pub use crate::psmacos::*;
@@ -98,8 +100,13 @@ fn posix_field_map() -> HashMap<&'static str, &'static str> {
98100
])
99101
}
100102

101-
fn main() {
103+
fn main() -> Result<(), Box<dyn std::error::Error>> {
104+
setlocale(LocaleCategory::LcAll, "");
105+
textdomain(env!("PROJECT_NAME"))?;
106+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
107+
102108
let mut args = Args::parse();
109+
103110
if args.all2 {
104111
args.all = true;
105112
}
@@ -108,7 +115,7 @@ fn main() {
108115
Ok(processes) => processes,
109116
Err(e) => {
110117
eprintln!("Error: {}", e);
111-
return;
118+
return Ok(());
112119
}
113120
};
114121

@@ -170,4 +177,6 @@ fn main() {
170177
}
171178
println!();
172179
}
180+
181+
Ok(())
173182
}

sys/uname.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
use clap::Parser;
1111
use gettextrs::{bind_textdomain_codeset, setlocale, textdomain, LocaleCategory};
12-
use plib::PROJECT_NAME;
1312

1413
/// uname - return system name
1514
#[derive(Parser)]
@@ -63,7 +62,10 @@ fn print_info(args: &Args, info: uname::Info) {
6362
}
6463

6564
fn main() -> Result<(), Box<dyn std::error::Error>> {
66-
// parse command line arguments
65+
setlocale(LocaleCategory::LcAll, "");
66+
textdomain(env!("PROJECT_NAME"))?;
67+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
68+
6769
let mut args = Args::parse();
6870

6971
if args.all {
@@ -76,10 +78,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
7678
args.system = true;
7779
}
7880

79-
setlocale(LocaleCategory::LcAll, "");
80-
textdomain(PROJECT_NAME)?;
81-
bind_textdomain_codeset(PROJECT_NAME, "UTF-8")?;
82-
8381
let mut exit_code = 0;
8482

8583
match uname::uname() {

sys/who.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
// - implement -T, -u options
1212
//
1313

14+
use std::path::PathBuf;
15+
1416
use clap::Parser;
1517
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
16-
use plib::{platform, PROJECT_NAME};
17-
use std::path::PathBuf;
18+
use plib::utmpx::Utmpx;
19+
use plib::{curuser, platform, utmpx};
1820

1921
/// who - display who is on the system
2022
#[derive(Parser)]
@@ -86,7 +88,7 @@ fn fmt_timestamp(ts: libc::time_t) -> String {
8688
dt.format("%b %e %H:%M").to_string()
8789
}
8890

89-
fn print_fmt_short(entry: &plib::utmpx::Utmpx, line: &str) {
91+
fn print_fmt_short(entry: &Utmpx, line: &str) {
9092
println!(
9193
"{:<16} {:<12} {}",
9294
entry.user,
@@ -95,7 +97,7 @@ fn print_fmt_short(entry: &plib::utmpx::Utmpx, line: &str) {
9597
);
9698
}
9799

98-
fn print_fmt_term(entry: &plib::utmpx::Utmpx, line: &str) {
100+
fn print_fmt_term(entry: &Utmpx, line: &str) {
99101
let term_state = '?';
100102
println!(
101103
"{:<16} {} {:<12} {}",
@@ -107,15 +109,15 @@ fn print_fmt_term(entry: &plib::utmpx::Utmpx, line: &str) {
107109
}
108110

109111
fn current_terminal() -> String {
110-
let s = plib::curuser::tty();
112+
let s = curuser::tty();
111113
if let Some(st) = s.strip_prefix("/dev/") {
112114
st.to_owned()
113115
} else {
114116
s
115117
}
116118
}
117119

118-
fn print_entry(args: &Args, entry: &plib::utmpx::Utmpx) {
120+
fn print_entry(args: &Args, entry: &Utmpx) {
119121
// Skip if current_terminal option is set and this entry is not for the current terminal
120122
if args.current_terminal {
121123
let current_tty = current_terminal();
@@ -161,15 +163,15 @@ fn show_utmpx_entries(args: &Args) {
161163
);
162164
}
163165

164-
let entries = plib::utmpx::load();
166+
let entries = utmpx::load();
165167
for entry in &entries {
166168
print_entry(args, entry);
167169
}
168170
}
169171

170172
fn show_utmpx_summary() {
171173
let mut count = 0;
172-
let entries = plib::utmpx::load();
174+
let entries = utmpx::load();
173175
for entry in &entries {
174176
if !entry.user.is_empty() {
175177
println!("{}", entry.user);
@@ -181,7 +183,10 @@ fn show_utmpx_summary() {
181183
}
182184

183185
fn main() -> Result<(), Box<dyn std::error::Error>> {
184-
// manual CLI parse for special "who am i" case
186+
setlocale(LocaleCategory::LcAll, "");
187+
textdomain(env!("PROJECT_NAME"))?;
188+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
189+
185190
let args: Vec<String> = std::env::args().skip(1).collect();
186191
let am_i = args.len() == 2 && args[0] == "am" && (args[1] == "i" || args[1] == "I");
187192

@@ -207,10 +212,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
207212
args.userproc = true;
208213
}
209214

210-
setlocale(LocaleCategory::LcAll, "");
211-
textdomain(PROJECT_NAME)?;
212-
bind_textdomain_codeset(PROJECT_NAME, "UTF-8")?;
213-
214215
let mut exit_code = 0;
215216

216217
if args.file.is_some() {

0 commit comments

Comments
 (0)