diff options
| author | Ian Dowse <iedowse@FreeBSD.org> | 2001-11-18 17:24:28 +0000 |
|---|---|---|
| committer | Ian Dowse <iedowse@FreeBSD.org> | 2001-11-18 17:24:28 +0000 |
| commit | 00a2029a0e3a03150ec602c46cb88bb45e7ba892 (patch) | |
| tree | e59b73f4fcb0de865bfbc1c9e3a2f2914b40632c /usr.sbin/dev_mkdb/dev_mkdb.c | |
| parent | 56f7305f58e489346155bc33a75da66a785bb482 (diff) | |
Notes
Diffstat (limited to 'usr.sbin/dev_mkdb/dev_mkdb.c')
| -rw-r--r-- | usr.sbin/dev_mkdb/dev_mkdb.c | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/usr.sbin/dev_mkdb/dev_mkdb.c b/usr.sbin/dev_mkdb/dev_mkdb.c index 0a0e2c1857a8..d79674ee7bb6 100644 --- a/usr.sbin/dev_mkdb/dev_mkdb.c +++ b/usr.sbin/dev_mkdb/dev_mkdb.c @@ -76,12 +76,18 @@ main(argc, argv) } bkey; DB *db; DBT data, key; - int ch; + int ch, fflag; u_char buf[MAXNAMLEN + 1]; char dbtmp[MAXPATHLEN + 1], dbname[MAXPATHLEN + 1]; + const char *dirname; - while ((ch = getopt(argc, argv, "")) != -1) + fflag = 0; + while ((ch = getopt(argc, argv, "f:")) != -1) switch((char)ch) { + case 'f': + strlcpy(dbname, optarg, sizeof(dbname)); + fflag = 1; + break; case '?': default: usage(); @@ -89,16 +95,24 @@ main(argc, argv) argc -= optind; argv += optind; - if (argc > 0) + if (argc > 1) usage(); + if (argc == 1) + dirname = argv[0]; + else + dirname = _PATH_DEV; - if (chdir(_PATH_DEV)) - err(1, "%s", _PATH_DEV); + if (!fflag) { + (void)snprintf(dbname, sizeof(dbtmp), "%sdev.db", _PATH_VARRUN); + (void)snprintf(dbtmp, sizeof(dbtmp), "%sdev.tmp", _PATH_VARRUN); + } else + (void)snprintf(dbtmp, sizeof(dbtmp), "%s.tmp", dbname); + + if (chdir(dirname)) + err(1, "%s", dirname); dirp = opendir("."); - (void)snprintf(dbtmp, sizeof(dbtmp), "%sdev.tmp", _PATH_VARRUN); - (void)snprintf(dbname, sizeof(dbtmp), "%sdev.db", _PATH_VARRUN); db = dbopen(dbtmp, O_CREAT|O_EXLOCK|O_RDWR|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, DB_HASH, NULL); if (db == NULL) @@ -148,6 +162,6 @@ main(argc, argv) static void usage() { - (void)fprintf(stderr, "usage: dev_mkdb\n"); + (void)fprintf(stderr, "usage: dev_mkdb [-f file] [directory]\n"); exit(1); } |
