From bcdb9b8762d14634afb570fe48db9fa62d8c0109 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sun, 9 Jan 2011 21:44:51 +0100 Subject: getty: fix -i (was ignored) Signed-off-by: Denys Vlasenko --- include/usage.src.h | 17 ----------------- 1 file changed, 17 deletions(-) (limited to 'include/usage.src.h') diff --git a/include/usage.src.h b/include/usage.src.h index ea0e6a452..ef2bebd8b 100644 --- a/include/usage.src.h +++ b/include/usage.src.h @@ -1394,23 +1394,6 @@ INSERT #define getsebool_full_usage "\n\n" \ " -a Show all selinux booleans" -#define getty_trivial_usage \ - "[OPTIONS] BAUD_RATE TTY [TERMTYPE]" -#define getty_full_usage "\n\n" \ - "Open a tty, prompt for a login name, then invoke /bin/login\n" \ - "\nOptions:" \ - "\n -h Enable hardware (RTS/CTS) flow control" \ - "\n -i Don't display /etc/issue before running login" \ - "\n -L Local line, don't do carrier detect" \ - "\n -m Get baud rate from modem's CONNECT status message" \ - "\n -w Wait for a CR or LF before sending /etc/issue" \ - "\n -n Don't prompt the user for a login name" \ - "\n -f ISSUE_FILE Display ISSUE_FILE instead of /etc/issue" \ - "\n -l LOGIN Invoke LOGIN instead of /bin/login" \ - "\n -t SEC Terminate after SEC if no username is read" \ - "\n -I INITSTR Send INITSTR before anything else" \ - "\n -H HOST Log HOST into the utmp file as the hostname" \ - #define gunzip_trivial_usage \ "[-cft] [FILE]..." #define gunzip_full_usage "\n\n" \ -- cgit v1.2.3-55-g6feb From 068444629fbcf59dd8165a63885f8e69fd5cb474 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 13 Jan 2011 16:07:51 +0100 Subject: top: add keyboard commands to --help Signed-off-by: Denys Vlasenko --- include/usage.src.h | 8 -------- procps/top.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 8 deletions(-) (limited to 'include/usage.src.h') diff --git a/include/usage.src.h b/include/usage.src.h index ef2bebd8b..a4776a2d6 100644 --- a/include/usage.src.h +++ b/include/usage.src.h @@ -3826,14 +3826,6 @@ INSERT "Runs PROG. Sends SIG to it if it is not gone in SECS seconds.\n" \ "Defaults: SECS: 10, SIG: TERM." \ -#define top_trivial_usage \ - "[-b] [-nCOUNT] [-dSECONDS]" IF_FEATURE_TOPMEM(" [-m]") -#define top_full_usage "\n\n" \ - "Provide a view of process activity in real time.\n" \ - "Read the status of all processes from /proc each SECONDS\n" \ - "and display a screenful of them." \ -//TODO: add options and keyboard commands - #define tr_trivial_usage \ "[-cds] STRING1 [STRING2]" #define tr_full_usage "\n\n" \ diff --git a/procps/top.c b/procps/top.c index f9106fac7..1eb33dc5d 100644 --- a/procps/top.c +++ b/procps/top.c @@ -833,6 +833,35 @@ enum { | PSSCAN_COMM, }; +//usage:#if ENABLE_FEATURE_SHOW_THREADS || ENABLE_FEATURE_TOP_SMP_CPU +//usage:# define IF_SHOW_THREADS_OR_TOP_SMP(...) __VA_ARGS__ +//usage:#else +//usage:# define IF_SHOW_THREADS_OR_TOP_SMP(...) +//usage:#endif +//usage:#define top_trivial_usage +//usage: "[-b] [-nCOUNT] [-dSECONDS]" IF_FEATURE_TOPMEM(" [-m]") +//usage:#define top_full_usage "\n\n" +//usage: "Provide a view of process activity in real time." +//usage: "\n""Read the status of all processes from /proc each SECONDS" +//usage: "\n""and display a screenful of them." +//usage: "\n""Keys:" +//usage: "\n"" N/M" +//usage: IF_FEATURE_TOP_CPU_USAGE_PERCENTAGE("/P") +//usage: IF_FEATURE_TOP_CPU_USAGE_PERCENTAGE("/T") +//usage: ": " IF_FEATURE_TOPMEM("show CPU usage, ") "sort by pid/mem" +//usage: IF_FEATURE_TOP_CPU_USAGE_PERCENTAGE("/cpu") +//usage: IF_FEATURE_TOP_CPU_USAGE_PERCENTAGE("/time") +//usage: IF_FEATURE_TOPMEM( +//usage: "\n"" S: show memory, R: reverse memory sort" +//usage: ) +//usage: IF_SHOW_THREADS_OR_TOP_SMP( +//usage: "\n"" " +//usage: IF_FEATURE_SHOW_THREADS("H: toggle threads") +//usage: IF_FEATURE_SHOW_THREADS(IF_FEATURE_TOP_SMP_CPU(", ")) +//usage: IF_FEATURE_TOP_SMP_CPU("1: toggle SMP") +//usage: ) +//usage: "\n"" Q,^C: exit" + int top_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int top_main(int argc UNUSED_PARAM, char **argv) { -- cgit v1.2.3-55-g6feb From 3a0f690dcd06ff693a0b76d764739425600ec1f1 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sat, 22 Jan 2011 00:38:24 +0100 Subject: svlogd: extend usage text. +70 bytes Signed-off-by: Denys Vlasenko --- include/usage.src.h | 7 ------- runit/svlogd.c | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 7 deletions(-) (limited to 'include/usage.src.h') diff --git a/include/usage.src.h b/include/usage.src.h index a4776a2d6..9300b3ce8 100644 --- a/include/usage.src.h +++ b/include/usage.src.h @@ -3538,13 +3538,6 @@ INSERT "pause, cont, hup, alarm, interrupt, quit, 1, 2, term, kill: send\n" \ "STOP, CONT, HUP, ALRM, INT, QUIT, USR1, USR2, TERM, KILL signal to service" \ -#define svlogd_trivial_usage \ - "[-ttv] [-r C] [-R CHARS] [-l MATCHLEN] [-b BUFLEN] DIR..." -#define svlogd_full_usage "\n\n" \ - "Continuously read log data from stdin, optionally\n" \ - "filter log messages, and write the data to one or more automatically\n" \ - "rotated logs" \ - #define swapoff_trivial_usage \ "[-a] [DEVICE]" #define swapoff_full_usage "\n\n" \ diff --git a/runit/svlogd.c b/runit/svlogd.c index c3ff4e9c1..cfa20a773 100644 --- a/runit/svlogd.c +++ b/runit/svlogd.c @@ -125,6 +125,23 @@ log message, you can use a pattern like this instead -*: *: pid * */ +//usage:#define svlogd_trivial_usage +//usage: "[-ttv] [-r C] [-R CHARS] [-l MATCHLEN] [-b BUFLEN] DIR..." +//usage:#define svlogd_full_usage "\n\n" +//usage: "Continuously read log data from stdin and write to rotated log files in DIRs" +//usage: "\n" +//usage: "\n""DIR/config file modifies behavior:" +//usage: "\n""sSIZE - when to rotate logs" +//usage: "\n""nNUM - number of files to retain" +/*usage: "\n""NNUM - min number files to retain" - confusing */ +/*usage: "\n""tSEC - rotate file if it get SEC seconds old" - confusing */ +//usage: "\n""!PROG - process rotated log with PROG" +/*usage: "\n""uIPADDR - send log over UDP" - unsupported */ +/*usage: "\n""UIPADDR - send log over UDP and DONT log" - unsupported */ +/*usage: "\n""pPFX - prefix each line with PFX" - unsupported */ +//usage: "\n""+,-PATTERN - (de)select line for logging" +//usage: "\n""E,ePATTERN - (de)select line for stderr" + #include #include #include "libbb.h" -- cgit v1.2.3-55-g6feb From 658a437d4bd97d4897a9d0183570634a90ae6773 Mon Sep 17 00:00:00 2001 From: Davide Cavalca Date: Sat, 22 Jan 2011 18:55:32 +0100 Subject: hwclock: implement --systz function old new delta hwclock_main 324 434 +110 packed_usage 28220 28259 +39 static.hwclock_longopts 53 60 +7 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/0 up/down: 156/0) Total: 156 bytes Signed-off-by: Davide Cavalca Signed-off-by: Denys Vlasenko --- include/usage.src.h | 19 ---------------- util-linux/hwclock.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 59 insertions(+), 24 deletions(-) (limited to 'include/usage.src.h') diff --git a/include/usage.src.h b/include/usage.src.h index 9300b3ce8..ebe80f8e1 100644 --- a/include/usage.src.h +++ b/include/usage.src.h @@ -1595,25 +1595,6 @@ INSERT "\n -e STRING HTML encode STRING" \ "\n -d STRING URL decode STRING" \ -#define hwclock_trivial_usage \ - IF_FEATURE_HWCLOCK_LONG_OPTIONS( \ - "[-r|--show] [-s|--hctosys] [-w|--systohc]" \ - " [-l|--localtime] [-u|--utc]" \ - " [-f FILE]" \ - ) \ - IF_NOT_FEATURE_HWCLOCK_LONG_OPTIONS( \ - "[-r] [-s] [-w] [-l] [-u] [-f FILE]" \ - ) -#define hwclock_full_usage "\n\n" \ - "Query and set hardware clock (RTC)\n" \ - "\nOptions:" \ - "\n -r Show hardware clock time" \ - "\n -s Set system time from hardware clock" \ - "\n -w Set hardware clock to system time" \ - "\n -u Hardware clock is in UTC" \ - "\n -l Hardware clock is in local time" \ - "\n -f FILE Use specified device (e.g. /dev/rtc2)" \ - #define id_trivial_usage \ "[OPTIONS] [USER]" #define id_full_usage "\n\n" \ diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c index 922dd0578..54e97e5bb 100644 --- a/util-linux/hwclock.c +++ b/util-linux/hwclock.c @@ -223,12 +223,63 @@ static void from_sys_clock(const char **pp_rtcname, int utc) close(rtc); } +/* + * At system boot, kernel may set system time from RTC, + * but it knows nothing about timezones. If RTC is in local time, + * then system time is wrong - it is offset by timezone. + * This option corrects system time if RTC is in local time, + * and (always) sets in-kernel timezone. + * + * This is an alternate option to --hctosys that does not read the + * hardware clock. + */ +static void set_system_clock_timezone(int utc) +{ + struct timeval tv; + struct tm *broken; + struct timezone tz; + + gettimeofday(&tv, NULL); + broken = localtime(&tv.tv_sec); + tz.tz_minuteswest = timezone / 60; + if (broken->tm_isdst) + tz.tz_minuteswest -= 60; + tz.tz_dsttime = 0; + gettimeofday(&tv, NULL); + if (!utc) + tv.tv_sec += tz.tz_minuteswest * 60; + if (settimeofday(&tv, &tz)) + bb_perror_msg_and_die("settimeofday"); +} + +//usage:#define hwclock_trivial_usage +//usage: IF_FEATURE_HWCLOCK_LONG_OPTIONS( +//usage: "[-r|--show] [-s|--hctosys] [-w|--systohc] [-t|--systz]" +//usage: " [-l|--localtime] [-u|--utc]" +//usage: " [-f|--rtc FILE]" +//usage: ) +//usage: IF_NOT_FEATURE_HWCLOCK_LONG_OPTIONS( +//usage: "[-r] [-s] [-w] [-t] [-l] [-u] [-f FILE]" +//usage: ) +//usage:#define hwclock_full_usage "\n\n" +//usage: "Query and set hardware clock (RTC)\n" +//usage: "\nOptions:" +//usage: "\n -r Show hardware clock time" +//usage: "\n -s Set system time from hardware clock" +//usage: "\n -w Set hardware clock from system time" +//usage: "\n -t Set in-kernel timezone, correct system time" +//usage: "\n if hardware clock is in local time" +//usage: "\n -u Hardware clock is in UTC" +//usage: "\n -l Hardware clock is in local time" +//usage: "\n -f FILE Use specified device (e.g. /dev/rtc2)" + #define HWCLOCK_OPT_LOCALTIME 0x01 #define HWCLOCK_OPT_UTC 0x02 #define HWCLOCK_OPT_SHOW 0x04 #define HWCLOCK_OPT_HCTOSYS 0x08 #define HWCLOCK_OPT_SYSTOHC 0x10 -#define HWCLOCK_OPT_RTCFILE 0x20 +#define HWCLOCK_OPT_SYSTZ 0x20 +#define HWCLOCK_OPT_RTCFILE 0x40 int hwclock_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int hwclock_main(int argc UNUSED_PARAM, char **argv) @@ -239,17 +290,18 @@ int hwclock_main(int argc UNUSED_PARAM, char **argv) #if ENABLE_FEATURE_HWCLOCK_LONG_OPTIONS static const char hwclock_longopts[] ALIGN1 = - "localtime\0" No_argument "l" + "localtime\0" No_argument "l" /* short opt is non-standard */ "utc\0" No_argument "u" "show\0" No_argument "r" "hctosys\0" No_argument "s" "systohc\0" No_argument "w" - "file\0" Required_argument "f" + "systz\0" No_argument "t" /* short opt is non-standard */ + "rtc\0" Required_argument "f" ; applet_long_options = hwclock_longopts; #endif - opt_complementary = "r--ws:w--rs:s--wr:l--u:u--l"; - opt = getopt32(argv, "lurswf:", &rtcname); + opt_complementary = "r--wst:w--rst:s--wrt:t--rsw:l--u:u--l"; + opt = getopt32(argv, "lurswtf:", &rtcname); /* If -u or -l wasn't given check if we are using utc */ if (opt & (HWCLOCK_OPT_UTC | HWCLOCK_OPT_LOCALTIME)) @@ -261,6 +313,8 @@ int hwclock_main(int argc UNUSED_PARAM, char **argv) to_sys_clock(&rtcname, utc); else if (opt & HWCLOCK_OPT_SYSTOHC) from_sys_clock(&rtcname, utc); + else if (opt & HWCLOCK_OPT_SYSTZ) + set_system_clock_timezone(utc); else /* default HWCLOCK_OPT_SHOW */ show_clock(&rtcname, utc); -- cgit v1.2.3-55-g6feb