Merge pull request #117 from shadow-utils-rs/meta/uutils-conventions

meta: prepare repo for uutils ecosystem integration
This commit is contained in:
Pierre Warnier
2026-04-03 15:06:33 +02:00
committed by GitHub
23 changed files with 119 additions and 31 deletions
+11
View File
@@ -58,3 +58,14 @@ jobs:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: EmbarkStudios/cargo-deny-action@v2
test-docker:
name: Test (${{ matrix.target }})
if: github.event_name == 'push'
runs-on: ubuntu-latest
strategy:
matrix:
target: [debian, alpine, fedora]
steps:
- uses: actions/checkout@v4
- run: docker compose run --rm ${{ matrix.target }} cargo test --workspace
+1 -1
View File
@@ -7,7 +7,7 @@ everything you need to know.
Before you start, also check:
- [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) (when created)
- [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)
- [SECURITY.md](./SECURITY.md) for vulnerability reporting
> [!WARNING]
+12 -5
View File
@@ -3,13 +3,16 @@
[package]
name = "shadow-rs"
version = "0.0.1"
edition = "2021"
license = "MIT"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Memory-safe Rust reimplementation of Linux shadow-utils"
repository = "https://github.com/shadow-utils-rs/shadow-rs"
readme = "README.md"
keywords = ["coreutils", "shadow", "passwd", "useradd", "linux"]
categories = ["command-line-utilities", "os::unix-apis"]
keywords = ["shadow-utils", "uutils", "shadow", "passwd", "linux"]
categories = ["command-line-utilities"]
[workspace]
members = [
@@ -37,6 +40,9 @@ rust-version = "1.94.0"
license = "MIT"
authors = ["shadow-rs contributors"]
repository = "https://github.com/shadow-utils-rs/shadow-rs"
homepage = "https://github.com/shadow-utils-rs/shadow-rs"
keywords = ["shadow-utils", "uutils", "shadow", "passwd", "linux"]
categories = ["command-line-utilities"]
[workspace.dependencies]
# Internal crates
@@ -109,6 +115,7 @@ feat_phase1 = ["feat_passwd", "feat_pwck"]
feat_phase2 = ["feat_useradd", "feat_userdel", "feat_usermod", "feat_chpasswd", "feat_chage"]
feat_phase3 = ["feat_groupadd", "feat_groupdel", "feat_groupmod", "feat_grpck", "feat_chfn", "feat_chsh", "feat_newgrp"]
feat_common = ["feat_phase1", "feat_phase2"]
feat_common_core = ["feat_phase1", "feat_phase2", "feat_phase3"]
# PAM authentication (requires libpam-dev)
pam = ["passwd/pam"]
+2
View File
@@ -4,6 +4,8 @@
# shadow-rs
[![License](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/shadow-utils-rs/shadow-rs/blob/main/LICENSE)
[![CI](https://github.com/shadow-utils-rs/shadow-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/shadow-utils-rs/shadow-rs/actions/workflows/ci.yml)
[![MSRV](https://img.shields.io/badge/MSRV-1.94.0-blue)](https://github.com/shadow-utils-rs/shadow-rs)
</div>
+5
View File
@@ -0,0 +1,5 @@
{
"extends": [
"config:recommended"
]
}
+3
View File
@@ -0,0 +1,3 @@
[toolchain]
channel = "stable"
components = ["rustfmt", "clippy"]
+1 -1
View File
@@ -16,8 +16,8 @@
//! Supported shells: bash, zsh, fish, elvish, powershell
use clap::{Arg, ArgAction, Command};
use clap_complete::generate;
use clap_complete::Shell;
use clap_complete::generate;
use std::io;
fn get_tool_app(name: &str) -> Option<Command> {
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "Core library for shadow-rs: parsers, atomic file ops, locking, PAM integration"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "shadow-core ~ (shadow-rs) parsers, atomic file ops, locking, PAM"
[lib]
path = "src/lib.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "chage command (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "chage ~ (shadow-rs) change user password aging"
[lib]
path = "src/chage.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "chfn command (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "chfn ~ (shadow-rs) change user finger information"
[lib]
path = "src/chfn.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "chpasswd command (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "chpasswd ~ (shadow-rs) update passwords in batch"
[lib]
path = "src/chpasswd.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "chsh command (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "chsh ~ (shadow-rs) change user login shell"
[lib]
path = "src/chsh.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "groupadd command (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "groupadd ~ (shadow-rs) create a new group"
[lib]
path = "src/groupadd.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "groupdel command (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "groupdel ~ (shadow-rs) delete a group"
[lib]
path = "src/groupdel.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "groupmod command (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "groupmod ~ (shadow-rs) modify a group"
[lib]
path = "src/groupmod.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "grpck command (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "grpck ~ (shadow-rs) verify integrity of group files"
[lib]
path = "src/grpck.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "newgrp command (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "newgrp ~ (shadow-rs) change effective group ID"
[lib]
path = "src/newgrp.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "passwd command — change user password (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "passwd ~ (shadow-rs) change user password"
[lib]
path = "src/passwd.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "pwck command — verify integrity of password files (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "pwck ~ (shadow-rs) verify integrity of password files"
[lib]
path = "src/pwck.rs"
+5 -1
View File
@@ -5,7 +5,11 @@ edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "useradd command (shadow-rs)"
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true
description = "useradd ~ (shadow-rs) create a new user"
[lib]
path = "src/useradd.rs"

Some files were not shown because too many files have changed in this diff Show More