Package: at
Version: 3.1.9
Tags: patch
I first planned to submit a bug for too verbose at command, but then I
found this old one. I added a new flag '-s' for 'silent' that inhibits
POSIX2-required warning of using /bin/sh and printing of time.
Other alternative would be defining some environment variable like
'SHUT_UP_AT_I_KNOW_YOU_USE_BIN_SH_THANKS' :-) and check for that.
if (getenv("SHUT_UP_AT_I_KNOW_YOU_USE_BIN_SH_THANKS"))
silent = 1;
instead of that fragment in getopt-switch.
--
Markus Peuhkuri | http://iki.fi/puhuri/
--- at.c~ 2005-08-02 12:15:24.000000000 +0300
+++ at.c 2005-09-29 21:20:29.362365032 +0300
@@ -131,7 +131,7 @@
static void sigc(int signo);
static void alarmc(int signo);
static char *cwdname(void);
-static void writefile(time_t runtimer, char queue);
+static void writefile(time_t runtimer, char queue, int silent);
static void list_jobs(void);
/* Signal catching functions */
@@ -220,7 +220,7 @@
}
static void
-writefile(time_t runtimer, char queue)
+writefile(time_t runtimer, char queue, int silent)
{
/* This does most of the work if at or batch are invoked for writing a job.
*/
@@ -494,7 +494,8 @@
runtime = localtime(&runtimer);
strftime(timestr, TIMESIZE, TIMEFORMAT_POSIX, runtime);
- fprintf(stderr, "job %ld at %s\n", jobno, timestr);
+ if (!silent)
+ fprintf(stderr, "job %ld at %s\n", jobno, timestr);
/* Signal atd, if present. Usual precautions taken... */
fd = open(PIDFILE, O_RDONLY);
@@ -727,8 +728,9 @@
char *pgm;
int program = AT; /* our default program */
- char *options = "q:f:MmvldhVc"; /* default options for at */
+ char *options = "q:f:MmvldhVcs"; /* default options for at */
int disp_version = 0;
+ int silent = 0;
time_t timer;
struct passwd *pwe;
struct group *ge;
@@ -828,6 +830,10 @@
disp_version = 1;
break;
+ case 's':
+ silent = 1;
+ break;
+
case 'c':
program = CAT;
options = "";
@@ -910,9 +916,10 @@
It also alows a warning diagnostic to be printed. Because of the
possible variance, we always output the diagnostic. */
- fprintf(stderr, "warning: commands will be executed using /bin/sh\n");
+ if (!silent)
+ fprintf(stderr, "warning: commands will be executed using /bin/sh\n");
- writefile(timer, queue);
+ writefile(timer, queue, silent);
break;
case BATCH:
@@ -930,7 +937,7 @@
struct tm *tm = localtime(&timer);
fprintf(stderr, "%s\n", asctime(tm));
}
- writefile(timer, queue);
+ writefile(timer, queue, silent);
break;
default:
--- at.1.in~ 2005-08-02 11:53:11.000000000 +0300
+++ at.1.in 2005-09-29 21:23:12.847511512 +0300
@@ -9,7 +9,7 @@
.IR queue ]
.RB [ -f
.IR file ]
-.RB [ -mldbv ]
+.RB [ -mldbvs ]
.B TIME
.br
.B "at -c"
@@ -27,6 +27,7 @@
.RI [ job... ]
.br
.B batch
+.RB [ -s ]
.SH DESCRIPTION
.B at
and
@@ -227,6 +228,10 @@
.B
\-c
cats the jobs listed on the command line to standard output.
+.TP
+.B
+\-s
+does not print diagnostic output.
.SH FILES
.I @ATJBD@
.br