diff options
Diffstat (limited to 'usr.sbin/config/main.c')
-rw-r--r-- | usr.sbin/config/main.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/usr.sbin/config/main.c b/usr.sbin/config/main.c index 372e17d..ae7692e 100644 --- a/usr.sbin/config/main.c +++ b/usr.sbin/config/main.c @@ -90,7 +90,8 @@ usage: fputs("usage: config [-gp] sysname\n", stderr); perror(PREFIX); exit(2); } - if (stat(p = path((char *)NULL), &buf)) { + p = path((char *)NULL); + if (stat(p, &buf)) { if (mkdir(p, 0777)) { perror(p); exit(2); @@ -100,6 +101,23 @@ usage: fputs("usage: config [-gp] sysname\n", stderr); fprintf(stderr, "config: %s isn't a directory.\n", p); exit(2); } + else { + char tmp[strlen(p) + 8]; + + fprintf(stderr, "Removing old directory %s: ", p); + fflush(stderr); + sprintf(tmp, "rm -rf %s", p); + if (system(tmp)) { + fprintf(stderr, "Failed!\n"); + perror(tmp); + exit(2); + } + fprintf(stderr, "Done.\n"); + if (mkdir(p, 0777)) { + perror(p); + exit(2); + } + } loadaddress = -1; dtab = NULL; |