If /install.cfg exists on the local floppy (or if LOAD_CONFIG_FILE is defined

and the user inserts a floppy), read the config file to pre-define variables
for a custom installation.

[Note: I fixed one bug in LOAD_CONFIG_FILE code, but it's still not perfect.]
This commit is contained in:
Paul Traina 1996-09-26 21:03:35 +00:00
parent b3f3fea5fd
commit 5319e113eb
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=18501
3 changed files with 135 additions and 66 deletions

View file

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated for what's essentially a complete rewrite.
*
* $Id: main.c,v 1.26 1996/09/08 01:39:24 jkh Exp $
* $Id: main.c,v 1.27 1996/09/15 23:55:23 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -37,6 +37,7 @@
#include "sysinstall.h"
#include <stdio.h>
#include <sys/signal.h>
#include <sys/fcntl.h>
static void
screech(int sig)
@ -110,33 +111,55 @@ main(int argc, char **argv)
systemShutdown(0);
}
/* If we have a compiled-in startup config file name, look for it and try to load it on startup */
#if defined(LOAD_CONFIG_FILE)
else {
extern char *distWanted;
{
int fd;
Attribs attrs[512];
distWanted = (char *)1; /* Tell mediaSetFloppy() to try floppy now */
/* Try to open the floppy drive if we can do that first */
if (DITEM_STATUS(mediaSetFloppy(NULL)) != DITEM_FAILURE && mediaDevice->init(mediaDevice)) {
int fd;
bzero(attrs, sizeof(attrs));
fd = mediaDevice->get(mediaDevice, LOAD_CONFIG_FILE, TRUE);
if (fd > 0) {
Attribs attrs[512]; /* Don't have more than this many attrs in one file, ok? :-) */
msgNotify("Loading %s pre-configuration file", LOAD_CONFIG_FILE);
if (DITEM_STATUS(attr_parse(attrs, fd)) == DITEM_SUCCESS) {
int i;
fd = open("install.cfg", O_RDONLY);
if (fd >= 0) {
msgNotify("Loading pre-configuration file");
if (DITEM_STATUS(attr_parse(attrs, fd)) == DITEM_SUCCESS) {
int i;
for (i = 0; attrs[i].name; i++)
variable_set2(attrs[i].name, attrs[i].value);
}
mediaDevice->close(mediaDevice, fd);
for (i = 0; *attrs[i].name; i++)
variable_set2(attrs[i].name, attrs[i].value);
}
close(fd);
}
#if defined(LOAD_CONFIG_FILE)
else {
/* If we have a compiled-in startup config file name on
the floppy, look for it and try to load it on startup */
extern char *distWanted;
/* Tell mediaSetFloppy() to try floppy now */
distWanted = (char *)1;
/* Try to open the floppy drive if we can do that first */
if (DITEM_STATUS(mediaSetFloppy(NULL)) != DITEM_FAILURE &&
mediaDevice->init(mediaDevice)) {
int fd;
fd = mediaDevice->get(mediaDevice, LOAD_CONFIG_FILE, TRUE);
if (fd > 0) {
msgNotify("Loading %s pre-configuration file",
LOAD_CONFIG_FILE);
if (DITEM_STATUS(attr_parse(attrs, fd)) == DITEM_SUCCESS) {
int i;
for (i = 0; *attrs[i].name; i++)
variable_set2(attrs[i].name, attrs[i].value);
}
mediaDevice->close(mediaDevice, fd);
}
mediaDevice->shutdown(mediaDevice);
}
mediaDevice->shutdown(mediaDevice);
}
}
#endif
}
/* Begin user dialog at outer menu */
dialog_clear();

View file

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated for what's essentially a complete rewrite.
*
* $Id: main.c,v 1.26 1996/09/08 01:39:24 jkh Exp $
* $Id: main.c,v 1.27 1996/09/15 23:55:23 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -37,6 +37,7 @@
#include "sysinstall.h"
#include <stdio.h>
#include <sys/signal.h>
#include <sys/fcntl.h>
static void
screech(int sig)
@ -110,33 +111,55 @@ main(int argc, char **argv)
systemShutdown(0);
}
/* If we have a compiled-in startup config file name, look for it and try to load it on startup */
#if defined(LOAD_CONFIG_FILE)
else {
extern char *distWanted;
{
int fd;
Attribs attrs[512];
distWanted = (char *)1; /* Tell mediaSetFloppy() to try floppy now */
/* Try to open the floppy drive if we can do that first */
if (DITEM_STATUS(mediaSetFloppy(NULL)) != DITEM_FAILURE && mediaDevice->init(mediaDevice)) {
int fd;
bzero(attrs, sizeof(attrs));
fd = mediaDevice->get(mediaDevice, LOAD_CONFIG_FILE, TRUE);
if (fd > 0) {
Attribs attrs[512]; /* Don't have more than this many attrs in one file, ok? :-) */
msgNotify("Loading %s pre-configuration file", LOAD_CONFIG_FILE);
if (DITEM_STATUS(attr_parse(attrs, fd)) == DITEM_SUCCESS) {
int i;
fd = open("install.cfg", O_RDONLY);
if (fd >= 0) {
msgNotify("Loading pre-configuration file");
if (DITEM_STATUS(attr_parse(attrs, fd)) == DITEM_SUCCESS) {
int i;
for (i = 0; attrs[i].name; i++)
variable_set2(attrs[i].name, attrs[i].value);
}
mediaDevice->close(mediaDevice, fd);
for (i = 0; *attrs[i].name; i++)
variable_set2(attrs[i].name, attrs[i].value);
}
close(fd);
}
#if defined(LOAD_CONFIG_FILE)
else {
/* If we have a compiled-in startup config file name on
the floppy, look for it and try to load it on startup */
extern char *distWanted;
/* Tell mediaSetFloppy() to try floppy now */
distWanted = (char *)1;
/* Try to open the floppy drive if we can do that first */
if (DITEM_STATUS(mediaSetFloppy(NULL)) != DITEM_FAILURE &&
mediaDevice->init(mediaDevice)) {
int fd;
fd = mediaDevice->get(mediaDevice, LOAD_CONFIG_FILE, TRUE);
if (fd > 0) {
msgNotify("Loading %s pre-configuration file",
LOAD_CONFIG_FILE);
if (DITEM_STATUS(attr_parse(attrs, fd)) == DITEM_SUCCESS) {
int i;
for (i = 0; *attrs[i].name; i++)
variable_set2(attrs[i].name, attrs[i].value);
}
mediaDevice->close(mediaDevice, fd);
}
mediaDevice->shutdown(mediaDevice);
}
mediaDevice->shutdown(mediaDevice);
}
}
#endif
}
/* Begin user dialog at outer menu */
dialog_clear();

View file

@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated for what's essentially a complete rewrite.
*
* $Id: main.c,v 1.26 1996/09/08 01:39:24 jkh Exp $
* $Id: main.c,v 1.27 1996/09/15 23:55:23 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@ -37,6 +37,7 @@
#include "sysinstall.h"
#include <stdio.h>
#include <sys/signal.h>
#include <sys/fcntl.h>
static void
screech(int sig)
@ -110,33 +111,55 @@ main(int argc, char **argv)
systemShutdown(0);
}
/* If we have a compiled-in startup config file name, look for it and try to load it on startup */
#if defined(LOAD_CONFIG_FILE)
else {
extern char *distWanted;
{
int fd;
Attribs attrs[512];
distWanted = (char *)1; /* Tell mediaSetFloppy() to try floppy now */
/* Try to open the floppy drive if we can do that first */
if (DITEM_STATUS(mediaSetFloppy(NULL)) != DITEM_FAILURE && mediaDevice->init(mediaDevice)) {
int fd;
bzero(attrs, sizeof(attrs));
fd = mediaDevice->get(mediaDevice, LOAD_CONFIG_FILE, TRUE);
if (fd > 0) {
Attribs attrs[512]; /* Don't have more than this many attrs in one file, ok? :-) */
msgNotify("Loading %s pre-configuration file", LOAD_CONFIG_FILE);
if (DITEM_STATUS(attr_parse(attrs, fd)) == DITEM_SUCCESS) {
int i;
fd = open("install.cfg", O_RDONLY);
if (fd >= 0) {
msgNotify("Loading pre-configuration file");
if (DITEM_STATUS(attr_parse(attrs, fd)) == DITEM_SUCCESS) {
int i;
for (i = 0; attrs[i].name; i++)
variable_set2(attrs[i].name, attrs[i].value);
}
mediaDevice->close(mediaDevice, fd);
for (i = 0; *attrs[i].name; i++)
variable_set2(attrs[i].name, attrs[i].value);
}
close(fd);
}
#if defined(LOAD_CONFIG_FILE)
else {
/* If we have a compiled-in startup config file name on
the floppy, look for it and try to load it on startup */
extern char *distWanted;
/* Tell mediaSetFloppy() to try floppy now */
distWanted = (char *)1;
/* Try to open the floppy drive if we can do that first */
if (DITEM_STATUS(mediaSetFloppy(NULL)) != DITEM_FAILURE &&
mediaDevice->init(mediaDevice)) {
int fd;
fd = mediaDevice->get(mediaDevice, LOAD_CONFIG_FILE, TRUE);
if (fd > 0) {
msgNotify("Loading %s pre-configuration file",
LOAD_CONFIG_FILE);
if (DITEM_STATUS(attr_parse(attrs, fd)) == DITEM_SUCCESS) {
int i;
for (i = 0; *attrs[i].name; i++)
variable_set2(attrs[i].name, attrs[i].value);
}
mediaDevice->close(mediaDevice, fd);
}
mediaDevice->shutdown(mediaDevice);
}
mediaDevice->shutdown(mediaDevice);
}
}
#endif
}
/* Begin user dialog at outer menu */
dialog_clear();