diff options
author | jkh <jkh@FreeBSD.org> | 1996-09-30 03:10:30 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1996-09-30 03:10:30 +0000 |
commit | 4a1af9f20b6ae22ea5b0d773346439dc3d23f6e6 (patch) | |
tree | 422716a802db104af870653eda7d57ac91f28b87 /usr.sbin/fdwrite | |
parent | d4e55ffaf31cb241a805c515ff3d48ad2a099beb (diff) | |
download | FreeBSD-src-4a1af9f20b6ae22ea5b0d773346439dc3d23f6e6.zip FreeBSD-src-4a1af9f20b6ae22ea5b0d773346439dc3d23f6e6.tar.gz |
Make this more usable from shell scripts and such by adding a non-interactive
flag and some checking to see if it's even reasonable to ask for confirmation
at all.
Diffstat (limited to 'usr.sbin/fdwrite')
-rw-r--r-- | usr.sbin/fdwrite/fdwrite.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/usr.sbin/fdwrite/fdwrite.c b/usr.sbin/fdwrite/fdwrite.c index d77040b..17af340 100644 --- a/usr.sbin/fdwrite/fdwrite.c +++ b/usr.sbin/fdwrite/fdwrite.c @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $Id: fdwrite.c,v 1.2 1994/10/14 16:03:33 joerg Exp $ + * $Id: fdwrite.c,v 1.3 1995/05/30 03:47:40 rgrimes Exp $ * */ @@ -56,7 +56,7 @@ format_track(int fd, int cyl, int secs, int head, int rate, static void usage () { - printf("Usage:\n\tfdwrite [-v] [-f inputfile] [-d device]\n"); + printf("Usage:\n\tfdwrite [-v] [-y] [-f inputfile] [-d device]\n"); exit(2); } @@ -65,12 +65,13 @@ main(int argc, char **argv) { int inputfd = -1, c, fdn = 0, i,j,fd; int bpt, verbose=1, nbytes=0, track; + int interactive = 1; char *device= "/dev/rfd0", *trackbuf = 0,*vrfybuf = 0; struct fd_type fdt; FILE *tty; setbuf(stdout,0); - while((c = getopt(argc, argv, "d:s:f:v")) != -1) + while((c = getopt(argc, argv, "d:s:f:vy")) != -1) switch(c) { case 'd': /* Which drive */ device = optarg; @@ -90,6 +91,10 @@ main(int argc, char **argv) verbose = !verbose; break; + case 'y': /* Don't confirm? */ + interactive = 0; + break; + case '?': default: usage(); } @@ -97,6 +102,9 @@ main(int argc, char **argv) if (inputfd < 0) inputfd = 0; + if (!isatty(1)) + interactive = 0; + if(optind < argc) usage(); @@ -109,12 +117,14 @@ main(int argc, char **argv) for(j=1;j > 0;) { fdn++; - fprintf(tty, - "Please insert floppy #%d in drive %s and press return >", - fdn,device); - while(1) { - i = getc(tty); - if(i == '\n') break; + if (interactive) { + fprintf(tty, + "Please insert floppy #%d in drive %s and press return >", + fdn,device); + while(1) { + i = getc(tty); + if(i == '\n') break; + } } if((fd = open(device, O_RDWR)) < 0) { |