mirror of
https://github.com/sharkdp/fd.git
synced 2024-11-16 00:48:28 +01:00
Merge pull request #1402 from tmccombs/nix-users
maint: Remove use of unmaintained users crate
This commit is contained in:
commit
5e0018fb1f
4 changed files with 26 additions and 29 deletions
11
Cargo.lock
generated
11
Cargo.lock
generated
|
@ -317,7 +317,6 @@ dependencies = [
|
|||
"regex-syntax 0.7.5",
|
||||
"tempfile",
|
||||
"test-case",
|
||||
"users",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
|
@ -792,16 +791,6 @@ version = "1.0.12"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||
|
||||
[[package]]
|
||||
name = "users"
|
||||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "24cc0f6d6f267b73e5a2cadf007ba8f9bc39c6a6f9666f8cf25ea809a153b032"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"log",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "utf8parse"
|
||||
version = "0.2.1"
|
||||
|
|
|
@ -66,8 +66,7 @@ default-features = false
|
|||
features = ["nu-ansi-term"]
|
||||
|
||||
[target.'cfg(unix)'.dependencies]
|
||||
users = "0.11.0"
|
||||
nix = { version = "0.26.2", default-features = false, features = ["signal"] }
|
||||
nix = { version = "0.26.2", default-features = false, features = ["signal", "user"] }
|
||||
|
||||
[target.'cfg(all(unix, not(target_os = "redox")))'.dependencies]
|
||||
libc = "0.2"
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use anyhow::{anyhow, Result};
|
||||
use nix::unistd::{Group, User};
|
||||
use std::fs;
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
|
@ -35,16 +36,22 @@ impl OwnerFilter {
|
|||
}
|
||||
|
||||
let uid = Check::parse(fst, |s| {
|
||||
s.parse()
|
||||
.ok()
|
||||
.or_else(|| users::get_user_by_name(s).map(|user| user.uid()))
|
||||
.ok_or_else(|| anyhow!("'{}' is not a recognized user name", s))
|
||||
if let Ok(uid) = s.parse() {
|
||||
Ok(uid)
|
||||
} else {
|
||||
User::from_name(s)?
|
||||
.map(|user| user.uid.as_raw())
|
||||
.ok_or_else(|| anyhow!("'{}' is not a recognized user name", s))
|
||||
}
|
||||
})?;
|
||||
let gid = Check::parse(snd, |s| {
|
||||
s.parse()
|
||||
.ok()
|
||||
.or_else(|| users::get_group_by_name(s).map(|group| group.gid()))
|
||||
.ok_or_else(|| anyhow!("'{}' is not a recognized group name", s))
|
||||
if let Ok(gid) = s.parse() {
|
||||
Ok(gid)
|
||||
} else {
|
||||
Group::from_name(s)?
|
||||
.map(|group| group.gid.as_raw())
|
||||
.ok_or_else(|| anyhow!("'{}' is not a recognized group name", s))
|
||||
}
|
||||
})?;
|
||||
|
||||
Ok(OwnerFilter { uid, gid })
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
mod testenv;
|
||||
|
||||
#[cfg(unix)]
|
||||
use nix::unistd::{Gid, Group, Uid, User};
|
||||
use std::fs;
|
||||
use std::io::Write;
|
||||
use std::path::Path;
|
||||
|
@ -1302,7 +1304,7 @@ fn test_type_executable() {
|
|||
// This test assumes the current user isn't root
|
||||
// (otherwise if the executable bit is set for any level, it is executable for the current
|
||||
// user)
|
||||
if users::get_current_uid() == 0 {
|
||||
if Uid::current().is_root() {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2261,10 +2263,10 @@ fn test_owner_ignore_all() {
|
|||
#[test]
|
||||
fn test_owner_current_user() {
|
||||
let te = TestEnv::new(DEFAULT_DIRS, DEFAULT_FILES);
|
||||
let uid = users::get_current_uid();
|
||||
let uid = Uid::current();
|
||||
te.assert_output(&["--owner", &uid.to_string(), "a.foo"], "a.foo");
|
||||
if let Some(username) = users::get_current_username().map(|u| u.into_string().unwrap()) {
|
||||
te.assert_output(&["--owner", &username, "a.foo"], "a.foo");
|
||||
if let Ok(Some(user)) = User::from_uid(uid) {
|
||||
te.assert_output(&["--owner", &user.name, "a.foo"], "a.foo");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2272,10 +2274,10 @@ fn test_owner_current_user() {
|
|||
#[test]
|
||||
fn test_owner_current_group() {
|
||||
let te = TestEnv::new(DEFAULT_DIRS, DEFAULT_FILES);
|
||||
let gid = users::get_current_gid();
|
||||
let gid = Gid::current();
|
||||
te.assert_output(&["--owner", &format!(":{}", gid), "a.foo"], "a.foo");
|
||||
if let Some(groupname) = users::get_current_groupname().map(|u| u.into_string().unwrap()) {
|
||||
te.assert_output(&["--owner", &format!(":{}", groupname), "a.foo"], "a.foo");
|
||||
if let Ok(Some(group)) = Group::from_gid(gid) {
|
||||
te.assert_output(&["--owner", &format!(":{}", group.name), "a.foo"], "a.foo");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2283,7 +2285,7 @@ fn test_owner_current_group() {
|
|||
#[test]
|
||||
fn test_owner_root() {
|
||||
// This test assumes the current user isn't root
|
||||
if users::get_current_uid() == 0 || users::get_current_gid() == 0 {
|
||||
if Uid::current().is_root() || Gid::current() == Gid::from_raw(0) {
|
||||
return;
|
||||
}
|
||||
let te = TestEnv::new(DEFAULT_DIRS, DEFAULT_FILES);
|
||||
|
|
Loading…
Reference in a new issue