174cd0f5ef
still needs an option to specify the distribution sets from a filesystem present in fstab. Add "ados" to the list file recognized filesystems. Increase label information table size to 16 to allow for 16 partitions.
337 lines
11 KiB
Plaintext
337 lines
11 KiB
Plaintext
/* $NetBSD: menus.mi.eng,v 1.13 1997/11/05 22:45:59 mhitch Exp $ */
|
|
|
|
/*
|
|
* Copyright 1997 Piermont Information Systems Inc.
|
|
* All rights reserved.
|
|
*
|
|
* Written by Philip A. Nelson for Piermont Information Systems Inc.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* 3. All advertising materials mentioning features or use of this software
|
|
* must display the following acknowledgement:
|
|
* This product includes software develooped for the NetBSD Project by
|
|
* Piermont Information Systems Inc.
|
|
* 4. The name of Piermont Information Systems Inc. may not be used to endorse
|
|
* or promote products derived from this software without specific prior
|
|
* written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
|
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
* THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* Menu system definitions -- machine independent
|
|
*
|
|
* Some menus may be called directly in the code rather than via the
|
|
* menu system.
|
|
*
|
|
* This file must be first in the sed command line.
|
|
*
|
|
*/
|
|
|
|
{
|
|
#include <stdio.h>
|
|
#include <curses.h>
|
|
#include "defs.h"
|
|
#include "md.h"
|
|
#include "msg_defs.h"
|
|
#include "menu_defs.h"
|
|
}
|
|
|
|
default x=20, y=12, no exit;
|
|
|
|
menu netbsd, title " NetBSD-@@VERSION@@ Install System";
|
|
display action { msg_display (MSG_hello); };
|
|
option "Install NetBSD to hard disk",
|
|
action { do_install(); };
|
|
option "Upgrade NetBSD on a hard disk",
|
|
action { do_upgrade(); };
|
|
option "Reboot the computer", exit,
|
|
action (endwin) { run_prog("/sbin/reboot"); };
|
|
option "Utility menu", sub menu utility;
|
|
option "Exit Install System", exit, action (endwin) {};
|
|
|
|
menu utility, title " NetBSD-@@VERSION@@ Utility", exit;
|
|
option "Run /bin/sh",
|
|
action (endwin) { system("/bin/sh"); puts(CL); };
|
|
option "Configure network",
|
|
action { config_network(); };
|
|
/* option "Partition a disk"; XXX add later. */
|
|
option "Halt the system", exit,
|
|
action (endwin) { run_prog("/sbin/halt"); };
|
|
|
|
menu yesno, title " yes or no? ";
|
|
option "Yes", exit, action {yesno = 1;};
|
|
option "No", exit, action {yesno = 0;};
|
|
|
|
menu noyes, title " yes or no? ";
|
|
option "No", exit, action {yesno = 0;};
|
|
option "Yes", exit, action {yesno = 1;};
|
|
|
|
menu ok, title " Hit enter to continue ";
|
|
option "ok", exit;
|
|
|
|
menu scsigeom1, title " Choose an option";
|
|
display action {
|
|
msg_display (MSG_scsigeom1, diskdev, disk->geom[4],
|
|
dlcyl, dlhead, dlsec, dlcyl*dlhead*dlsec,
|
|
disk->geom[0], disk->geom[1], disk->geom[2],
|
|
disk->geom[0]*disk->geom[1]*disk->geom[2]);
|
|
};
|
|
option "Use real geometry", exit, action {
|
|
dlcyl = disk->geom[0];
|
|
dlhead = disk->geom[1];
|
|
dlsec = disk->geom[2];
|
|
};
|
|
option "Use disklabel geometry", exit, action {
|
|
disk->geom[0] = dlcyl;
|
|
disk->geom[1] = dlhead;
|
|
disk->geom[2] = dlsec;
|
|
};
|
|
option "Choose a fake geometry", action { scsi_fake ();}, exit;
|
|
|
|
menu scsigeom2, title " Choose an option";
|
|
display action {
|
|
msg_display (MSG_scsigeom2, diskdev, disk->geom[4],
|
|
disk->geom[0], disk->geom[1], disk->geom[2],
|
|
disk->geom[0]*disk->geom[1]*disk->geom[2]);
|
|
};
|
|
option "Use real geometry", exit, action {
|
|
dlcyl = disk->geom[0];
|
|
dlhead = disk->geom[1];
|
|
dlsec = disk->geom[2];
|
|
};
|
|
option "Choose a fake geometry", action { scsi_fake ();}, exit;
|
|
|
|
menu scsi_fake, title " Choose a geometry";
|
|
option "Geometry 1", action { fake_sel = 0; }, exit;
|
|
option "Geometry 2", action { fake_sel = 1; }, exit;
|
|
option "Geometry 3", action { fake_sel = 2; }, exit;
|
|
option "Geometry 4", action { fake_sel = 3; }, exit;
|
|
option "Geometry 5", action { fake_sel = 4; }, exit;
|
|
|
|
menu layout, title " Choose your installation ";
|
|
option "Standard", exit, action { layoutkind = 1; };
|
|
option "Standard with X", exit, action { layoutkind = 2; };
|
|
option "Custom", exit, action { layoutkind = 3; };
|
|
|
|
menu sizechoice, title " Choose your size specifier";
|
|
option "Megabytes", exit, action
|
|
{ sizemult = MEG / sectorsize;
|
|
multname = msg_string(MSG_megname);
|
|
};
|
|
option "Cylinders", exit, action
|
|
{ sizemult = dlcylsize;
|
|
multname = msg_string(MSG_cylname);
|
|
};
|
|
option "Sectors", exit, action
|
|
{ sizemult = 1;
|
|
multname = msg_string(MSG_secname);
|
|
};
|
|
|
|
menu fspartok, title " Partitions ok?", y=15;
|
|
display action {
|
|
msg_display(MSG_fspart, multname);
|
|
disp_cur_fspart(-1, 0);
|
|
};
|
|
option "Partitions are ok", exit;
|
|
option "Change a partition", sub menu editfsparts;
|
|
|
|
menu edfspart, title " Change what? ", exit, y=15;
|
|
display action {
|
|
msg_display (MSG_edfspart, 'a'+editpart);
|
|
disp_cur_fspart(editpart, 1);
|
|
};
|
|
option "FS kind", sub menu selfskind;
|
|
option "Offset/size", action
|
|
{ char buf[40]; int start, size;
|
|
msg_prompt_add (MSG_offset, NULL, buf, 40);
|
|
start = NUMSEC(atoi(buf),sizemult,dlcylsize);
|
|
msg_prompt_add (MSG_size, NULL, buf, 40);
|
|
size = NUMSEC(atoi(buf),sizemult,dlcylsize);
|
|
if (size == -1)
|
|
size = dlsize - start;
|
|
if (editpart == 1 &&
|
|
bsdlabel[editpart][D_FSTYPE] == T_SWAP)
|
|
size -= swapadj;
|
|
if (start + size > dlsize)
|
|
size = dlsize - start;
|
|
bsdlabel[editpart][D_OFFSET] = start;
|
|
bsdlabel[editpart][D_SIZE] = size;
|
|
};
|
|
option "Bsize/Fsize", action
|
|
{ char buf[40]; int i;
|
|
|
|
if (bsdlabel[editpart][D_FSTYPE] != T_42BSD) {
|
|
msg_display (MSG_not42bsd, 'a'+editpart);
|
|
process_menu (MENU_ok);
|
|
return FALSE;
|
|
}
|
|
msg_prompt_add (MSG_bsize, NULL, buf, 40);
|
|
i = atoi(buf);
|
|
bsdlabel[editpart][D_BSIZE] = i;
|
|
msg_prompt_add (MSG_fsize, NULL, buf, 40);
|
|
i = atoi(buf);
|
|
bsdlabel[editpart][D_FSIZE] = i;
|
|
};
|
|
option "Mount point", action
|
|
{ if (bsdlabel[editpart][D_FSTYPE] == T_42BSD ||
|
|
bsdlabel[editpart][D_FSTYPE] == T_MSDOS)
|
|
msg_prompt_add (MSG_mountpoint, NULL,
|
|
fsmount[editpart], 20);
|
|
else {
|
|
msg_display (MSG_nomount, 'a'+editpart);
|
|
process_menu (MENU_ok);
|
|
}
|
|
};
|
|
|
|
menu selfskind, title " Select the type ", y=15;
|
|
option "4.2BSD", exit, action
|
|
{ bsdlabel[editpart][D_FSTYPE] = T_42BSD;
|
|
bsdlabel[editpart][D_BSIZE] = 8192;
|
|
bsdlabel[editpart][D_FSIZE] = 1024;
|
|
};
|
|
option "unused", exit, action
|
|
{ bsdlabel[editpart][D_FSTYPE] = T_UNUSED;
|
|
bsdlabel[editpart][D_BSIZE] = 0;
|
|
bsdlabel[editpart][D_FSIZE] = 0;
|
|
};
|
|
option "swap", exit, action
|
|
{ bsdlabel[editpart][D_FSTYPE] = T_SWAP;
|
|
bsdlabel[editpart][D_BSIZE] = 0;
|
|
bsdlabel[editpart][D_FSIZE] = 0;
|
|
};
|
|
option "msdos", exit, action
|
|
{ bsdlabel[editpart][D_FSTYPE] = T_MSDOS;
|
|
bsdlabel[editpart][D_BSIZE] = 0;
|
|
bsdlabel[editpart][D_FSIZE] = 0;
|
|
};
|
|
|
|
|
|
menu distmedium, title " Select medium";
|
|
display action { msg_display (MSG_distmedium); nodist = 0; };
|
|
option "ftp", action { process_menu (MENU_distset);
|
|
got_dist = get_via_ftp(); }, exit;
|
|
option "nfs", action { process_menu (MENU_distset);
|
|
got_dist = get_via_nfs(); }, exit;
|
|
option "cdrom", action { process_menu (MENU_distset);
|
|
got_dist = get_via_cdrom(); }, exit;
|
|
option "floppy", action { process_menu (MENU_distset);
|
|
got_dist = get_via_floppy(); }, exit;
|
|
option "local", action { process_menu (MENU_distset);
|
|
got_dist = get_via_localfs(); }, exit;
|
|
option "none", action { nodist = 1; }, exit;
|
|
|
|
menu distset, title " Select your distribution";
|
|
display action { msg_display (MSG_distset); };
|
|
option "Full installation", exit;
|
|
option "Custom installation", next menu md_distcustom;
|
|
|
|
menu ftpsource, title " Change";
|
|
display action
|
|
{ int i;
|
|
msg_display (MSG_ftpsource, ftp_host, ftp_dir, ftp_user);
|
|
if (strcmp(ftp_user, "ftp") == 0)
|
|
msg_printf_add ("%s", ftp_pass);
|
|
else
|
|
for (i = strlen(ftp_pass); i>0; i--)
|
|
msg_printf_add ("*");
|
|
};
|
|
option "Host", action
|
|
{ msg_prompt (MSG_host, NULL, ftp_host, 255); };
|
|
option "Directory", action
|
|
{ msg_prompt (MSG_dir, NULL, ftp_dir, 255); };
|
|
option "User", action
|
|
{ msg_prompt (MSG_user, NULL, ftp_user, 255); };
|
|
option "Password", action
|
|
{ if (strcmp(ftp_user, "ftp") == 0)
|
|
msg_prompt (MSG_email, NULL, ftp_pass, 255);
|
|
else {
|
|
msg_noecho ();
|
|
msg_prompt (MSG_passwd, NULL, ftp_pass, 255);
|
|
msg_echo ();
|
|
}
|
|
};
|
|
option "Get Distribution", exit;
|
|
|
|
menu nfssource, title " Change";
|
|
display action
|
|
{ msg_display (MSG_nfssource, nfs_host, nfs_dir); };
|
|
option "Host", action
|
|
{ msg_prompt (MSG_host, NULL, nfs_host, 255); };
|
|
option "Directory", action
|
|
{ msg_prompt (MSG_dir, NULL, nfs_dir, 255); };
|
|
option "Continue", exit;
|
|
|
|
menu nfsbadmount, title " What do you want to do?";
|
|
display action
|
|
{ msg_display (MSG_nfsbadmount, nfs_host, nfs_dir); };
|
|
option "Try again", exit, sub menu nfssource, action
|
|
{ yesno = 1; };
|
|
option "Give up", exit, action
|
|
{ yesno = 0; };
|
|
|
|
|
|
menu fdremount, title " What do you want to do? ";
|
|
option "Try again", exit, action { yesno = 1; };
|
|
option "Abort install", exit, action { yesno = 0; };
|
|
|
|
menu fdok, title " Hit enter to continue ";
|
|
option "OK", exit, action { yesno = 1; };
|
|
option "Abort install", exit, action { yesno = 0; };
|
|
|
|
|
|
menu cdromsource, title " Change";
|
|
display action
|
|
{ msg_display (MSG_cdromsource, cdrom_dev, cdrom_dir); };
|
|
option "Device", action
|
|
{ msg_prompt (MSG_dev, cdrom_dev, cdrom_dev, SSTRSIZE); };
|
|
option "Directory", action
|
|
{ msg_prompt (MSG_dir, cdrom_dir, cdrom_dir, STRSIZE); };
|
|
option "Continue", exit;
|
|
|
|
menu cdrombadmount, title " What do you want to do?";
|
|
display action
|
|
{ msg_display (MSG_cdrombadmount, nfs_host, nfs_dir); };
|
|
option "Try again", exit, sub menu cdromsource, action
|
|
{ yesno = 1; };
|
|
option "Give up", exit, action
|
|
{ yesno = 0; };
|
|
|
|
menu localfssource, title " Change";
|
|
display action
|
|
{ msg_display (MSG_localfssource, localfs_dev, localfs_fs, localfs_dir); };
|
|
option "Device", action
|
|
{ msg_prompt (MSG_dev, localfs_dev, localfs_dev, SSTRSIZE); };
|
|
option "Filesystem", action
|
|
{ msg_prompt (MSG_filesys, localfs_fs, localfs_fs, STRSIZE); };
|
|
option "Directory", action
|
|
{ msg_prompt (MSG_dir, localfs_dir, localfs_dir, STRSIZE); };
|
|
option "Continue", exit;
|
|
|
|
menu localfsbadmount, title " What do you want to do?";
|
|
display action
|
|
{ msg_display (MSG_localfsbadmount, localfs_dir, localfs_dev); };
|
|
option "Try again", exit, sub menu localfssource, action
|
|
{ yesno = 1; };
|
|
option "Give up", exit, action
|
|
{ yesno = 0; };
|
|
|