1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-29 12:07:46 +00:00

who: switch to using new coreopts syntax

This commit is contained in:
Nathan Ross 2016-08-11 13:52:43 -04:00
parent 617e8ca682
commit 6ecf9ecf66

View file

@ -12,7 +12,6 @@
#[macro_use]
extern crate uucore;
use uucore::utmpx::{self, time, Utmpx};
use uucore::coreopts;
use uucore::libc::{STDIN_FILENO, time_t, ttyname, S_IWGRP};
use std::borrow::Cow;
@ -21,11 +20,35 @@ use std::ffi::CStr;
use std::path::PathBuf;
use std::os::unix::fs::MetadataExt;
static NAME: &'static str = "who";
static SYNTAX: &'static str = "[OPTION]... [ FILE | ARG1 ARG2 ]";
static SUMMARY: &'static str = "Print information about users who are currently logged in.";
static LONG_HELP: &'static str = "
-a, --all same as -b -d --login -p -r -t -T -u
-b, --boot time of last system boot
-d, --dead print dead processes
-H, --heading print line of column headings
-l, --login print system login processes
--lookup attempt to canonicalize hostnames via DNS
-m only hostname and user associated with stdin
-p, --process print active processes spawned by init
-q, --count all login names and number of users logged on
-r, --runlevel print current runlevel
-s, --short print only name, line, and time (default)
-t, --time print last system clock change
-T, -w, --mesg add user's message status as +, - or ?
-u, --users list users logged in
--message same as -T
--writable same as -T
--help display this help and exit
--version output version information and exit
If FILE is not specified, use /var/run/utmp. /var/log/wtmp as FILE is common.
If ARG1 ARG2 given, -m presumed: 'am i' or 'mom likes' are usual.
";
pub fn uumain(args: Vec<String>) -> i32 {
let mut opts = coreopts::CoreOptions::new(NAME);
let mut opts = new_coreopts!(SYNTAX, SUMMARY, LONG_HELP);
opts.optflag("a", "all", "same as -b -d --login -p -r -t -T -u");
opts.optflag("b", "boot", "time of last system boot");
opts.optflag("d", "dead", "print dead processes");
@ -49,32 +72,6 @@ pub fn uumain(args: Vec<String>) -> i32 {
opts.optflag("", "help", "display this help and exit");
opts.optflag("", "version", "output version information and exit");
opts.help(format!("Usage: {} [OPTION]... [ FILE | ARG1 ARG2 ]
Print information about users who are currently logged in.
-a, --all same as -b -d --login -p -r -t -T -u
-b, --boot time of last system boot
-d, --dead print dead processes
-H, --heading print line of column headings
-l, --login print system login processes
--lookup attempt to canonicalize hostnames via DNS
-m only hostname and user associated with stdin
-p, --process print active processes spawned by init
-q, --count all login names and number of users logged on
-r, --runlevel print current runlevel
-s, --short print only name, line, and time (default)
-t, --time print last system clock change
-T, -w, --mesg add user's message status as +, - or ?
-u, --users list users logged in
--message same as -T
--writable same as -T
--help display this help and exit
--version output version information and exit
If FILE is not specified, use /var/run/utmp. /var/log/wtmp as FILE is common.
If ARG1 ARG2 given, -m presumed: 'am i' or 'mom likes' are usual.",
NAME));
let matches = opts.parse(args);
// If true, attempt to canonicalize hostnames via a DNS lookup.