aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/sade
diff options
context:
space:
mode:
authorJordan K. Hubbard <jkh@FreeBSD.org>1995-05-27 10:47:44 +0000
committerJordan K. Hubbard <jkh@FreeBSD.org>1995-05-27 10:47:44 +0000
commit8e98d776c0e9fe969434e574c1df32b8ccca46d4 (patch)
tree4f8ff13ef2bf6807ea0fbfb311091d2377e98b86 /usr.sbin/sade
parentba5d6a864bbcb49ec89533353debbb7da987147d (diff)
downloadsrc-8e98d776c0e9fe969434e574c1df32b8ccca46d4.tar.gz
src-8e98d776c0e9fe969434e574c1df32b8ccca46d4.zip
Commit parts of reorg that were diffs. Substantially re-engineer the
extraction and mediaGetFTP() handshaking to solve some unexpected complexities.
Notes
Notes: svn path=/head/; revision=8792
Diffstat (limited to 'usr.sbin/sade')
-rw-r--r--usr.sbin/sade/Makefile14
-rw-r--r--usr.sbin/sade/install.c18
-rw-r--r--usr.sbin/sade/menus.c4
-rw-r--r--usr.sbin/sade/sade.h75
-rw-r--r--usr.sbin/sade/variable.c4
5 files changed, 69 insertions, 46 deletions
diff --git a/usr.sbin/sade/Makefile b/usr.sbin/sade/Makefile
index b70e8918b052..ebeacc193b40 100644
--- a/usr.sbin/sade/Makefile
+++ b/usr.sbin/sade/Makefile
@@ -4,15 +4,11 @@ CLEANFILES= makedevs.c rtermcap
.PATH: ${.CURDIR}/../disklabel ${.CURDIR}/../../usr.bin/cksum
-SRCS= globals.c main.c dmenu.c \
- menus.c misc.c msg.c \
- system.c install.c termcap.c \
- media.c variable.c devices.c \
- dist.c lang.c wizard.c \
- disks.c command.c decode.c \
- label.c tcpip.c media_strategy.c \
- makedevs.c ftp.c config.c \
- crc.c
+SRCS= attr.c cdrom.c command.c config.c crc.c decode.c devices.c disks.c dist.c \
+ dmenu.c dos.c floppy.c ftp.c ftp_strat.c globals.c install.c label.c lang.c \
+ main.c makedevs.c media.c menus.c misc.c msg.c network.c nfs.c system.c tape.c \
+ tcpip.c termcap.c ufs.c variable.c wizard.c
+
CFLAGS+= -Wall -g -I${.CURDIR}/../libdisk \
-I${.CURDIR}/../../gnu/lib/libdialog
diff --git a/usr.sbin/sade/install.c b/usr.sbin/sade/install.c
index 6d6f86db9218..56ad315e2882 100644
--- a/usr.sbin/sade/install.c
+++ b/usr.sbin/sade/install.c
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
- * $Id: install.c,v 1.59 1995/05/26 10:32:28 jkh Exp $
+ * $Id: install.c,v 1.60 1995/05/26 20:45:19 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@@ -386,11 +386,11 @@ static void loop_on_root_floppy();
static void
root_extract(void)
{
- int fd, status;
+ int fd;
if (OnCDROM) {
fd = open("/floppies/root.flp", O_RDONLY);
- mediaExtractDist("root.flp", "/", fd);
+ (void)mediaExtractDist("root.flp", "/", fd);
return;
}
if (mediaDevice) {
@@ -407,12 +407,14 @@ root_extract(void)
fd = (*mediaDevice->get)("root.flp", "floppies/");
if (fd != -1) {
msgNotify("Loading root floppy from %s", mediaDevice->name);
- status = mediaExtractDist("root.flp", "/", fd);
+ (void)mediaExtractDist("root.flp", "/", fd);
if (mediaDevice->close)
(*mediaDevice->close)(mediaDevice, fd);
else
close(fd);
}
+ if (mediaDevice->shutdown)
+ (*mediaDevice->shutdown)(mediaDevice);
break;
case DEVICE_TYPE_FLOPPY:
@@ -430,9 +432,7 @@ loop_on_root_floppy(void)
{
int fd;
- mediaDevice = NULL;
- fd = genericGetDist("root.flp", NULL, TRUE);
- if (fd == -1)
- return;
- mediaExtractDist("root.flp", "/", fd);
+ fd = getRootFloppy();
+ if (fd != -1)
+ mediaExtractDist("root.flp", "/", fd);
}
diff --git a/usr.sbin/sade/menus.c b/usr.sbin/sade/menus.c
index f47e144f4670..7dee248010fc 100644
--- a/usr.sbin/sade/menus.c
+++ b/usr.sbin/sade/menus.c
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
- * $Id: menus.c,v 1.32 1995/05/26 11:21:53 jkh Exp $
+ * $Id: menus.c,v 1.33 1995/05/26 19:28:03 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@@ -554,6 +554,8 @@ When you're done setting options, select Cancel",
DMENU_SET_VARIABLE, "debug=yes", 0, 0 },
{ "No Debugging", "Turn the extra debugging flag off",
DMENU_SET_VARIABLE, "debug=no", 0, 0 },
+ { "Yes To All", "Assume \"Yes\" answers to all non-critical dialogs",
+ DMENU_SET_VARIABLE, "noConfirmation=Yes", 0, 0 },
{ NULL } },
};
diff --git a/usr.sbin/sade/sade.h b/usr.sbin/sade/sade.h
index 6dd558c3c23d..4d0dfa03ceae 100644
--- a/usr.sbin/sade/sade.h
+++ b/usr.sbin/sade/sade.h
@@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
- * $Id: sysinstall.h,v 1.34 1995/05/26 08:41:48 jkh Exp $
+ * $Id: sysinstall.h,v 1.35 1995/05/26 19:28:04 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@@ -85,7 +85,7 @@
#define DISK_LABELLED "_diskLabelled"
#define RUNNING_ON_ROOT "_runningOnRoot"
#define TCP_CONFIGURED "_tcpConfigured"
-#define NO_CONFIRMATION "_noConfirmation"
+#define NO_CONFIRMATION "noConfirmation"
#define VAR_HOSTNAME "hostname"
#define VAR_DOMAINNAME "domainname"
@@ -142,6 +142,15 @@ typedef struct _variable {
char value[VAR_VALUE_MAX];
} Variable;
+#define MAX_ATTRIBS 200
+#define MAX_NAME 511
+#define MAX_VALUE 4095
+
+typedef struct _attribs {
+ char *name;
+ char *value;
+} Attribs;
+
typedef enum {
DEVICE_TYPE_NONE,
DEVICE_TYPE_DISK,
@@ -235,6 +244,15 @@ extern DMenu MenuDiskDevices; /* Disk devices menu */
/*** Prototypes ***/
+/* attrs.c */
+extern const char *attr_match(Attribs *attr, char *name);
+extern int attr_parse(Attribs **attr, char *file);
+
+/* cdrom.c */
+extern Boolean mediaInitCDROM(Device *dev);
+extern int mediaGetCDROM(char *dist, char *path);
+extern void mediaShutdownCDROM(Device *dev);
+
/* command.c */
extern void command_clear(void);
extern void command_sort(void);
@@ -285,6 +303,23 @@ extern void dmenuOpen(DMenu *menu, int *choice, int *scroll,
int *curr, int *max);
extern void dmenuOpenSimple(DMenu *menu);
+/* dos.c */
+extern Boolean mediaInitDOS(Device *dev);
+extern int mediaGetDOS(char *dist, char *path);
+extern void mediaShutdownDOS(Device *dev);
+
+/* floppy.c */
+extern int getRootFloppy(void);
+extern Boolean mediaInitFloppy(Device *dev);
+extern int mediaGetFloppy(char *dist, char *path);
+extern void mediaShutdownFloppy(Device *dev);
+
+/* ftp_strat.c */
+extern Boolean mediaCloseFTP(Device *dev, int fd);
+extern Boolean mediaInitFTP(Device *dev);
+extern int mediaGetFTP(char *dist, char *path);
+extern void mediaShutdownFTP(Device *dev);
+
/* globals.c */
extern void globalsInit(void);
@@ -322,6 +357,7 @@ extern const u_char koi8_r2cp866[];
extern u_char default_scrnmap[];
/* media.c */
+extern int genericGetDist(char *path, Attribs *dist_attrib, Boolean prompt);
extern int mediaSetCDROM(char *str);
extern int mediaSetFloppy(char *str);
extern int mediaSetDOS(char *str);
@@ -332,28 +368,6 @@ extern Boolean mediaGetType(void);
extern Boolean mediaExtractDist(char *distname, char *dir, int fd);
extern Boolean mediaVerify(void);
-/* media_strategy.c */
-extern int genericGetDist(char *path, void *dist_attrib, Boolean prompt);
-extern Boolean mediaInitCDROM(Device *dev);
-extern Boolean mediaInitDOS(Device *dev);
-extern Boolean mediaInitFloppy(Device *dev);
-extern Boolean mediaInitFTP(Device *dev);
-extern Boolean mediaInitNetwork(Device *dev);
-extern Boolean mediaInitTape(Device *dev);
-extern Boolean mediaInitUFS(Device *dev);
-extern int mediaGetCDROM(char *dist, char *path);
-extern int mediaGetDOS(char *dist, char *path);
-extern int mediaGetFloppy(char *dist, char *path);
-extern int mediaGetFTP(char *dist, char *path);
-extern int mediaGetTape(char *dist, char *path);
-extern int mediaGetUFS(char *dist, char *path);
-extern void mediaShutdownCDROM(Device *dev);
-extern void mediaShutdownDOS(Device *dev);
-extern void mediaShutdownFTP(Device *dev);
-extern void mediaShutdownFloppy(Device *dev);
-extern void mediaShutdownNetwork(Device *dev);
-extern void mediaShutdownTape(Device *dev);
-
/* misc.c */
extern Boolean file_readable(char *fname);
extern Boolean file_executable(char *fname);
@@ -384,6 +398,10 @@ extern void msgWeHaveOutput(char *fmt, ...);
extern int msgYesNo(char *fmt, ...);
extern char *msgGetInput(char *buf, char *fmt, ...);
+/* network.c */
+extern Boolean mediaInitNetwork(Device *dev);
+extern void mediaShutdownNetwork(Device *dev);
+
/* system.c */
extern void systemInitialize(int argc, char **argv);
extern void systemShutdown(void);
@@ -399,6 +417,11 @@ extern void systemChangeTerminal(char *color, const u_char c_termcap[],
extern void systemChangeScreenmap(const u_char newmap[]);
extern int vsystem(char *fmt, ...);
+/* tape.c */
+extern Boolean mediaInitTape(Device *dev);
+extern int mediaGetTape(char *dist, char *path);
+extern void mediaShutdownTape(Device *dev);
+
/* tcpip.c */
extern int tcpOpenDialog(Device *dev);
extern int tcpDeviceSelect(char *str);
@@ -407,6 +430,10 @@ extern Boolean tcpStartPPP(Device *dev);
/* termcap.c */
extern int set_termcap(void);
+/* ufs.c */
+extern Boolean mediaInitUFS(Device *dev);
+extern int mediaGetUFS(char *dist, char *path);
+
/* variables.c */
extern void variable_set(char *var);
extern void variable_set2(char *name, char *value);
diff --git a/usr.sbin/sade/variable.c b/usr.sbin/sade/variable.c
index ec3c5b187429..4ff9499b82f4 100644
--- a/usr.sbin/sade/variable.c
+++ b/usr.sbin/sade/variable.c
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
- * $Id: variable.c,v 1.2 1995/05/20 10:33:13 jkh Exp $
+ * $Id: variable.c,v 1.3 1995/05/26 20:45:20 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@@ -75,8 +75,6 @@ variable_set(char *var)
void
variable_set2(char *var, char *value)
{
- Variable *newvar;
-
if (!var || !value)
msgFatal("Null name or value passed to set_variable2!");
make_variable(var, value);