diff --git a/src/who/who.rs b/src/who/who.rs index e8bb94972..3f5fa402d 100644 --- a/src/who/who.rs +++ b/src/who/who.rs @@ -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) -> 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) -> 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.