mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-31 13:07:46 +00:00
hostname:" update to clap 4
This commit is contained in:
parent
0253a0bcfa
commit
0f642451e1
2 changed files with 14 additions and 10 deletions
|
@ -15,7 +15,7 @@ edition = "2021"
|
||||||
path = "src/hostname.rs"
|
path = "src/hostname.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = { version = "3.2", features = ["wrap_help", "cargo"] }
|
clap = { version = "4.0", features = ["wrap_help", "cargo"] }
|
||||||
hostname = { version = "0.3", features = ["set"] }
|
hostname = { version = "0.3", features = ["set"] }
|
||||||
uucore = { version=">=0.0.16", package="uucore", path="../../uucore", features=["wide"] }
|
uucore = { version=">=0.0.16", package="uucore", path="../../uucore", features=["wide"] }
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ use std::str;
|
||||||
use std::{collections::hash_set::HashSet, ffi::OsString};
|
use std::{collections::hash_set::HashSet, ffi::OsString};
|
||||||
|
|
||||||
use clap::builder::ValueParser;
|
use clap::builder::ValueParser;
|
||||||
use clap::{crate_version, Arg, ArgMatches, Command};
|
use clap::{crate_version, Arg, ArgAction, ArgMatches, Command};
|
||||||
|
|
||||||
use uucore::{
|
use uucore::{
|
||||||
error::{FromIo, UResult},
|
error::{FromIo, UResult},
|
||||||
|
@ -72,7 +72,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn uu_app<'a>() -> Command<'a> {
|
pub fn uu_app() -> Command {
|
||||||
Command::new(uucore::util_name())
|
Command::new(uucore::util_name())
|
||||||
.version(crate_version!())
|
.version(crate_version!())
|
||||||
.about(ABOUT)
|
.about(ABOUT)
|
||||||
|
@ -83,28 +83,32 @@ pub fn uu_app<'a>() -> Command<'a> {
|
||||||
.short('d')
|
.short('d')
|
||||||
.long("domain")
|
.long("domain")
|
||||||
.overrides_with_all(&[OPT_DOMAIN, OPT_IP_ADDRESS, OPT_FQDN, OPT_SHORT])
|
.overrides_with_all(&[OPT_DOMAIN, OPT_IP_ADDRESS, OPT_FQDN, OPT_SHORT])
|
||||||
.help("Display the name of the DNS domain if possible"),
|
.help("Display the name of the DNS domain if possible")
|
||||||
|
.action(ArgAction::SetTrue),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::new(OPT_IP_ADDRESS)
|
Arg::new(OPT_IP_ADDRESS)
|
||||||
.short('i')
|
.short('i')
|
||||||
.long("ip-address")
|
.long("ip-address")
|
||||||
.overrides_with_all(&[OPT_DOMAIN, OPT_IP_ADDRESS, OPT_FQDN, OPT_SHORT])
|
.overrides_with_all(&[OPT_DOMAIN, OPT_IP_ADDRESS, OPT_FQDN, OPT_SHORT])
|
||||||
.help("Display the network address(es) of the host"),
|
.help("Display the network address(es) of the host")
|
||||||
|
.action(ArgAction::SetTrue),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::new(OPT_FQDN)
|
Arg::new(OPT_FQDN)
|
||||||
.short('f')
|
.short('f')
|
||||||
.long("fqdn")
|
.long("fqdn")
|
||||||
.overrides_with_all(&[OPT_DOMAIN, OPT_IP_ADDRESS, OPT_FQDN, OPT_SHORT])
|
.overrides_with_all(&[OPT_DOMAIN, OPT_IP_ADDRESS, OPT_FQDN, OPT_SHORT])
|
||||||
.help("Display the FQDN (Fully Qualified Domain Name) (default)"),
|
.help("Display the FQDN (Fully Qualified Domain Name) (default)")
|
||||||
|
.action(ArgAction::SetTrue),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::new(OPT_SHORT)
|
Arg::new(OPT_SHORT)
|
||||||
.short('s')
|
.short('s')
|
||||||
.long("short")
|
.long("short")
|
||||||
.overrides_with_all(&[OPT_DOMAIN, OPT_IP_ADDRESS, OPT_FQDN, OPT_SHORT])
|
.overrides_with_all(&[OPT_DOMAIN, OPT_IP_ADDRESS, OPT_FQDN, OPT_SHORT])
|
||||||
.help("Display the short hostname (the portion before the first dot) if possible"),
|
.help("Display the short hostname (the portion before the first dot) if possible")
|
||||||
|
.action(ArgAction::SetTrue),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::new(OPT_HOST)
|
Arg::new(OPT_HOST)
|
||||||
|
@ -119,7 +123,7 @@ fn display_hostname(matches: &ArgMatches) -> UResult<()> {
|
||||||
.to_string_lossy()
|
.to_string_lossy()
|
||||||
.into_owned();
|
.into_owned();
|
||||||
|
|
||||||
if matches.contains_id(OPT_IP_ADDRESS) {
|
if matches.get_flag(OPT_IP_ADDRESS) {
|
||||||
// XXX: to_socket_addrs needs hostname:port so append a dummy port and remove it later.
|
// XXX: to_socket_addrs needs hostname:port so append a dummy port and remove it later.
|
||||||
// This was originally supposed to use std::net::lookup_host, but that seems to be
|
// This was originally supposed to use std::net::lookup_host, but that seems to be
|
||||||
// deprecated. Perhaps we should use the dns-lookup crate?
|
// deprecated. Perhaps we should use the dns-lookup crate?
|
||||||
|
@ -149,10 +153,10 @@ fn display_hostname(matches: &ArgMatches) -> UResult<()> {
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
} else {
|
} else {
|
||||||
if matches.contains_id(OPT_SHORT) || matches.contains_id(OPT_DOMAIN) {
|
if matches.get_flag(OPT_SHORT) || matches.get_flag(OPT_DOMAIN) {
|
||||||
let mut it = hostname.char_indices().filter(|&ci| ci.1 == '.');
|
let mut it = hostname.char_indices().filter(|&ci| ci.1 == '.');
|
||||||
if let Some(ci) = it.next() {
|
if let Some(ci) = it.next() {
|
||||||
if matches.contains_id(OPT_SHORT) {
|
if matches.get_flag(OPT_SHORT) {
|
||||||
println!("{}", &hostname[0..ci.0]);
|
println!("{}", &hostname[0..ci.0]);
|
||||||
} else {
|
} else {
|
||||||
println!("{}", &hostname[ci.0 + 1..]);
|
println!("{}", &hostname[ci.0 + 1..]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue