X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=restore%2Fmain.c;h=8b6b08e0a57b7b4cad9ccf47698771a284e26749;hp=8911d2069475a9366848a7644d17324f7db88d88;hb=b8f7cbe65e70f2ec792c447995ba00ca360ec0c9;hpb=35b24fb7fabcf6df3b37aebf70c228d5b0688d32 diff --git a/restore/main.c b/restore/main.c index 8911d20..8b6b08e 100644 --- a/restore/main.c +++ b/restore/main.c @@ -41,15 +41,18 @@ #ifndef lint static const char rcsid[] = - "$Id: main.c,v 1.20 2001/04/10 12:46:53 stelian Exp $"; + "$Id: main.c,v 1.26 2001/07/18 13:12:33 stelian Exp $"; #endif /* not lint */ #include +#include #include #include #include #ifdef __linux__ +#include +#include #ifdef HAVE_EXT2FS_EXT2_FS_H #include #else @@ -96,6 +99,7 @@ int compare_ignore_not_found; int compare_errors; char filesys[NAMELEN]; static const char *stdin_opt = NULL; +char *bot_script = NULL; #ifdef __linux__ char *__progname; @@ -116,9 +120,11 @@ main(int argc, char *argv[]) FILE *filelist = NULL; char fname[MAXPATHLEN]; #ifdef USE_QFA - time_t tistart, tiend, titaken; tapeposflag = 0; #endif +#ifdef USE_QFADEBUG + time_t tistart, tiend, titaken; +#endif /* Temp files should *not* be readable. We set permissions later. */ (void) umask(077); @@ -140,7 +146,7 @@ main(int argc, char *argv[]) ; obsolete(&argc, &argv); while ((ch = getopt(argc, argv, - "b:CcdD:f:hi" + "b:CcdD:f:F:hi" #ifdef KERBEROS "k" #endif @@ -177,6 +183,9 @@ main(int argc, char *argv[]) use_stdin("-f"); inputdev = optarg; break; + case 'F': + bot_script = optarg; + break; case 'h': hflag = 0; break; @@ -247,6 +256,11 @@ main(int argc, char *argv[]) if (command == '\0') errx(1, "none of C, i, R, r, t or x options specified"); +#ifdef USE_QFA + if (!mflag && tapeposflag) + errx(1, "m and Q options are mutually exclusive"); +#endif + if (signal(SIGINT, onintr) == SIG_IGN) (void) signal(SIGINT, SIG_IGN); if (signal(SIGTERM, onintr) == SIG_IGN) @@ -306,14 +320,14 @@ main(int argc, char *argv[]) * Compare contents of tape. */ case 'C': { - struct stat stbuf; + struct STAT stbuf; Vprintf(stdout, "Begin compare restore\n"); compare_ignore_not_found = 0; compare_errors = 0; setup(); printf("filesys = %s\n", filesys); - if (stat(filesys, &stbuf) < 0) + if (STAT(filesys, &stbuf) < 0) err(1, "cannot stat directory %s", filesys); if (chdir(filesys) < 0) err(1, "cannot cd to %s", filesys); @@ -428,7 +442,7 @@ main(int argc, char *argv[]) * Batch extraction of tape contents. */ case 'x': -#ifdef USE_QFA +#ifdef USE_QFADEBUG tistart = time(NULL); #endif setup(); @@ -451,14 +465,12 @@ main(int argc, char *argv[]) setdirmodes(0); if (dflag) checkrestore(); -#ifdef USE_QFA +#ifdef USE_QFADEBUG tiend = time(NULL); titaken = tiend - tistart; -#ifdef USE_QFA msg("restore took %d:%02d:%02d\n", titaken / 3600, (titaken % 3600) / 60, titaken % 60); -#endif -#endif +#endif /* USE_QFADEBUG */ break; } exit(0); @@ -484,14 +496,21 @@ usage(void) #else #define kerbflag #endif + +#ifdef USE_QFA +#define qfaflag "[-Q file] " +#else +#define qfaflag +#endif + (void)fprintf(stderr, "usage:\t%s%s\n\t%s%s\n\t%s%s\n\t%s%s\n\t%s%s\n\t%s%s\n", - __progname, " -C [-c" kerbflag "Mvy] [-b blocksize] [-D filesystem] [-f file] [-s fileno]", - __progname, " -i [-ch" kerbflag "mMuvy] [-b blocksize] [-f file] [-s fileno]", - __progname, " -r [-c" kerbflag "Muvy] [-b blocksize] [-f file] [-s fileno] [-T directory]", - __progname, " -R [-c" kerbflag "Muvy] [-b blocksize] [-f file] [-s fileno] [-T directory]", - __progname, " -t [-ch" kerbflag "Muvy] [-b blocksize] [-f file] [-s fileno] [-X filelist] [file ...]", - __progname, " -x [-ch" kerbflag "mMuvy] [-b blocksize] [-f file] [-s fileno] [-X filelist] [file ...]"); + __progname, " -C [-c" kerbflag "Mvy] [-b blocksize] [-D filesystem] [-f file] [-F script] [-s fileno]", + __progname, " -i [-ch" kerbflag "mMuvy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno]", + __progname, " -r [-c" kerbflag "Muvy] [-b blocksize] [-f file] [-F script] [-s fileno] [-T directory]", + __progname, " -R [-c" kerbflag "Muvy] [-b blocksize] [-f file] [-F script] [-s fileno] [-T directory]", + __progname, " -t [-ch" kerbflag "Muvy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno] [-X filelist] [file ...]", + __progname, " -x [-ch" kerbflag "mMuvy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno] [-X filelist] [file ...]"); exit(1); } @@ -528,6 +547,7 @@ obsolete(int *argcp, char **argvp[]) case 'b': case 'D': case 'f': + case 'F': case 'Q': case 's': case 'T':