summaryrefslogtreecommitdiffstats
path: root/release/sysinstall/install.c
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1997-01-24 07:47:17 +0000
committerjkh <jkh@FreeBSD.org>1997-01-24 07:47:17 +0000
commit59d748d531a74d6c2828bcf19995d5f5f10febe6 (patch)
tree940c1bd16f1ab77767b69b096d717e77cd20db11 /release/sysinstall/install.c
parent665db5b3e7479a15dcdb878e11d1958774ff6b8b (diff)
downloadFreeBSD-src-59d748d531a74d6c2828bcf19995d5f5f10febe6.zip
FreeBSD-src-59d748d531a74d6c2828bcf19995d5f5f10febe6.tar.gz
This is a patch that makes some of the "partitions" --> "slice" to be
more consistant in our use of the terms for differentiation between PC partitions and traditional BSD partitions. Submitted-By: obrien@cs.ucdavis.edu (David O'Brien)
Diffstat (limited to 'release/sysinstall/install.c')
-rw-r--r--release/sysinstall/install.c63
1 files changed, 54 insertions, 9 deletions
diff --git a/release/sysinstall/install.c b/release/sysinstall/install.c
index 682d814..c42b084 100644
--- a/release/sysinstall/install.c
+++ b/release/sysinstall/install.c
@@ -230,8 +230,6 @@ installInitial(void)
msgConfirm("Unable to chroot to /mnt - this is bad!");
return DITEM_FAILURE;
}
- else
- Chrooted = TRUE;
chdir("/");
variable_set2(RUNNING_ON_ROOT, "yes");
@@ -443,6 +441,21 @@ installExpress(dialogMenuItem *self)
if (DITEM_STATUS((i = diskLabelEditor(self))) == DITEM_FAILURE)
return i;
+ if (!Dists) {
+ dialog_clear_norefresh();
+ if (!dmenuOpenSimple(&MenuDistributions, FALSE) || !Dists)
+ return DITEM_FAILURE | DITEM_RESTORE;
+ }
+
+ if (!mediaDevice) {
+ dialog_clear_norefresh();
+ if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
+ return DITEM_FAILURE | DITEM_RESTORE;
+ }
+
+ if (!mediaDevice->init(mediaDevice))
+ return DITEM_FAILURE | DITEM_REDRAW;
+
if (DITEM_STATUS((i = installCommit(self))) == DITEM_SUCCESS) {
i |= DITEM_LEAVE_MENU;
/* Give user the option of one last configuration spree */
@@ -482,6 +495,24 @@ installNovice(dialogMenuItem *self)
if (DITEM_STATUS(diskLabelEditor(self)) == DITEM_FAILURE)
return DITEM_FAILURE;
+ while (1) {
+ dialog_clear_norefresh();
+ if (!dmenuOpenSimple(&MenuDistributions, FALSE))
+ return DITEM_FAILURE | DITEM_RESTORE;
+
+ if (Dists)
+ break;
+
+ if (msgYesNo("No distributions selected. Revisit the distributions menu?"))
+ return DITEM_FAILURE | DITEM_RESTORE;
+ }
+
+ if (!mediaDevice && (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice))
+ return DITEM_FAILURE | DITEM_RESTORE;
+
+ if (!mediaDevice->init(mediaDevice))
+ return DITEM_FAILURE | DITEM_RESTORE;
+
if (DITEM_STATUS((i = installCommit(self))) == DITEM_FAILURE) {
dialog_clear_norefresh();
msgConfirm("Installation completed with some errors. You may wish to\n"
@@ -638,29 +669,43 @@ int
installCommit(dialogMenuItem *self)
{
int i;
+ char *str;
Boolean need_bin;
if (!Dists) {
- if (!dmenuOpenSimple(&MenuDistributions, FALSE) && !Dists)
+ if (!msgYesNo("No distributions are selected for installation! Do you\n"
+ "want to do this now?")) {
+ if (!dmenuOpenSimple(&MenuDistributions, FALSE) && !Dists)
+ return DITEM_FAILURE | DITEM_RESTORE;
+ }
+ else
return DITEM_FAILURE | DITEM_RESTORE;
}
-media:
if (!mediaDevice) {
- if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
- return DITEM_FAILURE | DITEM_RESTORE;
+ if (!msgYesNo("You need to select a media type first. Do you want\n"
+ "to do this now?")) {
+ if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
+ return DITEM_FAILURE | DITEM_RESTORE;
+ }
+ else
+ return DITEM_FAILURE | DITEM_RESTORE;
}
if (!mediaDevice->init(mediaDevice)) {
if (!msgYesNo("Unable to initialize selected media. Would you like to\n"
- "adjust your media configuration and try again?")) {
- mediaDevice = NULL;
- goto media;
+ "adjust your media configuration?")) {
+ if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
+ return DITEM_FAILURE | DITEM_RESTORE;
}
else
return DITEM_FAILURE | DITEM_RESTORE;
}
+ str = variable_get(SYSTEM_STATE);
+ if (isDebug())
+ msgDebug("installCommit: System state is `%s'\n", str);
+
if (RunningAsInit) {
/* Do things we wouldn't do to a multi-user system */
if (DITEM_STATUS((i = installInitial())) == DITEM_FAILURE)
OpenPOWER on IntegriCloud