Skip to content

Commit 3ba8f56

Browse files
authored
Merge pull request #361 from fox0/env-sys
Use compile-time macro env! and split signal into mod
2 parents 8fe9286 + a252197 commit 3ba8f56

File tree

33 files changed

+388
-456
lines changed

33 files changed

+388
-456
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pathnames/Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ edition.workspace = true
88
rust-version.workspace = true
99

1010
[dependencies]
11-
plib = { path = "../plib" }
1211
clap.workspace = true
1312
gettext-rs.workspace = true
1413
libc.workspace = true
1514

15+
[dev-dependencies]
16+
plib = { path = "../plib" }
17+
1618
[lints]
1719
workspace = true
1820

pathnames/basename.rs

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

10+
use std::path::Path;
11+
1012
use clap::Parser;
1113
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
12-
use plib::PROJECT_NAME;
13-
use std::path::Path;
1414

1515
#[derive(Parser)]
1616
#[command(
@@ -52,12 +52,11 @@ fn show_basename(args: &Args) {
5252
}
5353

5454
fn main() -> Result<(), Box<dyn std::error::Error>> {
55-
// parse command line arguments
56-
let args = Args::parse();
57-
5855
setlocale(LocaleCategory::LcAll, "");
59-
textdomain(PROJECT_NAME)?;
60-
bind_textdomain_codeset(PROJECT_NAME, "UTF-8")?;
56+
textdomain(env!("PROJECT_NAME"))?;
57+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
58+
59+
let args = Args::parse();
6160

6261
show_basename(&args);
6362

pathnames/dirname.rs

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

10-
use clap::Parser;
11-
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
12-
use plib::PROJECT_NAME;
1310
use std::ffi::OsString;
1411
use std::path::PathBuf;
1512

13+
use clap::Parser;
14+
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
15+
1616
#[derive(Parser)]
1717
#[command(
1818
version,
@@ -40,12 +40,11 @@ fn show_dirname(args: &Args) {
4040
}
4141

4242
fn main() -> Result<(), Box<dyn std::error::Error>> {
43-
// parse command line arguments
44-
let args = Args::parse();
45-
4643
setlocale(LocaleCategory::LcAll, "");
47-
textdomain(PROJECT_NAME)?;
48-
bind_textdomain_codeset(PROJECT_NAME, "UTF-8")?;
44+
textdomain(env!("PROJECT_NAME"))?;
45+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
46+
47+
let args = Args::parse();
4948

5049
show_dirname(&args);
5150

pathnames/pathchk.rs

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

10-
use clap::Parser;
11-
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
12-
use plib::PROJECT_NAME;
1310
use std::ffi::CString;
1411
use std::path::{Component, Path};
1512

13+
use clap::Parser;
14+
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
15+
1616
const _POSIX_PATH_MAX: usize = 255;
1717
const _POSIX_NAME_MAX: usize = 14;
1818

@@ -142,12 +142,11 @@ fn check_path(args: &Args, pathname: &str) -> Result<(), &'static str> {
142142
}
143143

144144
fn main() -> Result<(), Box<dyn std::error::Error>> {
145-
// parse command line arguments
146-
let args = Args::parse();
147-
148145
setlocale(LocaleCategory::LcAll, "");
149-
textdomain(PROJECT_NAME)?;
150-
bind_textdomain_codeset(PROJECT_NAME, "UTF-8")?;
146+
textdomain(env!("PROJECT_NAME"))?;
147+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
148+
149+
let args = Args::parse();
151150

152151
let mut exit_code = 0;
153152

pathnames/realpath.rs

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

10+
use std::path::{Component, Path, PathBuf};
11+
1012
use clap::Parser;
1113
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
12-
use plib::PROJECT_NAME;
13-
use std::path::{Component, Path, PathBuf};
1414

1515
/// realpath -- return resolved canonical path
1616
#[derive(Parser)]
@@ -63,11 +63,11 @@ fn normalize<P: AsRef<Path>>(path: P) -> std::io::Result<PathBuf> {
6363
}
6464

6565
fn main() -> Result<(), Box<dyn std::error::Error>> {
66-
let args = Args::parse();
67-
6866
setlocale(LocaleCategory::LcAll, "");
69-
textdomain(PROJECT_NAME)?;
70-
bind_textdomain_codeset(PROJECT_NAME, "UTF-8")?;
67+
textdomain(env!("PROJECT_NAME"))?;
68+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
69+
70+
let args = Args::parse();
7171

7272
let mut exit_code = 0;
7373

pathnames/tests/basename/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
// SPDX-License-Identifier: MIT
88
//
99

10-
use plib::{run_test, TestPlan};
10+
use plib::testing::{run_test, TestPlan};
1111

1212
#[test]
1313
fn basename_basic() {

pathnames/tests/dirname/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
// SPDX-License-Identifier: MIT
88
//
99

10-
use plib::{run_test, TestPlan};
10+
use plib::testing::{run_test, TestPlan};
1111

1212
#[test]
1313
fn dirname_basic() {

pathnames/tests/realpath/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
// SPDX-License-Identifier: MIT
88
//
99

10-
use plib::{run_test, TestPlan};
10+
use plib::testing::{run_test, TestPlan};
1111

1212
fn realpath_test(args: &[&str], stdout: &str, stderr: &str, expected_code: i32) {
1313
let str_args: Vec<String> = args.iter().map(|s| String::from(*s)).collect();

process/env.rs

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

10-
use clap::Parser;
11-
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
12-
use plib::PROJECT_NAME;
1310
use std::collections::HashMap;
1411
use std::env;
1512
use std::io;
1613
use std::os::unix::process::CommandExt;
1714
use std::process::{Command, Stdio};
1815

16+
use clap::Parser;
17+
use gettextrs::{bind_textdomain_codeset, gettext, setlocale, textdomain, LocaleCategory};
18+
1919
#[derive(Parser)]
2020
#[command(version, about = gettext("env - set the environment for command invocation"))]
2121
struct Args {
@@ -92,12 +92,11 @@ fn exec_util(envs: HashMap<String, String>, util_args: Vec<String>) -> io::Resul
9292
}
9393

9494
fn main() -> Result<(), Box<dyn std::error::Error>> {
95-
// parse command line arguments
96-
let args = Args::parse();
97-
9895
setlocale(LocaleCategory::LcAll, "");
99-
textdomain(PROJECT_NAME)?;
100-
bind_textdomain_codeset(PROJECT_NAME, "UTF-8")?;
96+
textdomain(env!("PROJECT_NAME"))?;
97+
bind_textdomain_codeset(env!("PROJECT_NAME"), "UTF-8")?;
98+
99+
let args = Args::parse();
101100

102101
let (envs, util_args) = separate_ops(&args.operands);
103102
let new_env = merge_env(&envs, args.ignore_env);

0 commit comments

Comments
 (0)