summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/config/main.c20
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;
OpenPOWER on IntegriCloud