Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Sep 1995 13:20:17 PDT
From:      Bill Fenner <fenner@parc.xerox.com>
To:        Terry Lambert <terry@lambert.org>
Cc:        current@freebsd.org
Subject:   Re: kernel versions and config's rm -rf 
Message-ID:  <95Sep25.132020pdt.177475@crevenia.parc.xerox.com>
In-Reply-To: Your message of "Sun, 24 Sep 95 16:36:16 PDT." <199509242336.QAA04174@phaeton.artisoft.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multipart MIME message.

--===_0_Mon_Sep_25_13:11:00_PDT_1995
Content-Type: text/plain

In message <199509242336.QAA04174@phaeton.artisoft.com> you write:
>> The other solution that I was considering was reading the number out of
>> the "version" file before the "rm -rf" and then writing it out again
>> afterwards.
>
>Yes, please.

Ok, new patch enclosed.

  Bill



--===_0_Mon_Sep_25_13:11:00_PDT_1995
Content-Type: text/plain
Content-Description: main.c.diff

--- usr.sbin/config/main.c.orig	Sun Sep 24 12:53:43 1995
+++ usr.sbin/config/main.c	Mon Sep 25 13:13:04 1995
@@ -46,6 +46,7 @@
 #include <sys/file.h>
 #include <stdio.h>
 #include <ctype.h>
+#include <errno.h>
 #include "y.tab.h"
 #include "config.h"
 
@@ -117,10 +118,22 @@
 		exit(2);
 	}
 	else if (!no_config_clobber) {
-		char tmp[strlen(p) + 8];
+		char tmp[strlen(p) + 9];
+		FILE *v;
+		int oversion = 0;
 
 		fprintf(stderr, "Removing old directory %s:  ", p);
 		fflush(stderr);
+		sprintf(tmp, "%s/version", p);
+		if ((v = fopen(tmp, "r")) == NULL) {
+			if (errno != ENOENT) {
+				fprintf(stderr, "...couldn't read version\n");
+				perror(tmp);
+			}
+		} else {
+			fscanf(v, "%d", &oversion);
+			fclose(v);
+		}
 		sprintf(tmp, "rm -rf %s", p);
 		if (system(tmp)) {
 			fprintf(stderr, "Failed!\n");
@@ -131,6 +144,16 @@
 		if (mkdir(p, 0777)) {
 			perror(p);
 			exit(2);
+		}
+		sprintf(tmp, "%s/version", p);
+		if (oversion != 0) {
+			if ((v = fopen(tmp, "w")) == NULL) {
+				fprintf(stderr, "Couldn't restore kernel version!\n");
+				perror(tmp);
+			} else {
+				fprintf(v, "%d\n", oversion);
+				fclose(v);
+			}
 		}
 	}
 	loadaddress = -1;


--===_0_Mon_Sep_25_13:11:00_PDT_1995--





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?95Sep25.132020pdt.177475>