373 lines
12 KiB
Plaintext
373 lines
12 KiB
Plaintext
/* $NetBSD: menus.mi.eng,v 1.19 1998/02/09 07:03:38 phil 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, x=15, title " NetBSD-@@VERSION@@ Install System";
|
|
display action { toplevel(); };
|
|
option "Install NetBSD to hard disk",
|
|
action { do_install(); };
|
|
option "Upgrade NetBSD on a hard disk",
|
|
action { do_upgrade(); };
|
|
option "Re-install sets or install additional sets",
|
|
action { do_reinstall_sets(); };
|
|
option "Reboot the computer", exit,
|
|
action (endwin) { run_prog("/sbin/reboot"); };
|
|
option "Utility menu", sub menu utility;
|
|
option "Exit Install System", exit;
|
|
|
|
menu utility, title " NetBSD-@@VERSION@@ Utility", exit;
|
|
option "Run /bin/sh",
|
|
action (endwin) { system("/bin/sh"); };
|
|
option "Configure network",
|
|
action {
|
|
extern int network_up;
|
|
|
|
network_up = 0;
|
|
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 {
|
|
got_dist = get_via_ftp();
|
|
},
|
|
exit;
|
|
option "nfs", action {
|
|
got_dist = get_via_nfs();
|
|
}, exit;
|
|
option "cdrom", action {
|
|
got_dist = get_via_cdrom();
|
|
}, exit;
|
|
option "floppy", action {
|
|
got_dist = get_via_floppy();
|
|
}, exit;
|
|
option "unmounted fs", action {
|
|
got_dist = get_via_localfs();
|
|
}, exit;
|
|
option "local dir", action {
|
|
got_dist = get_via_localdir();
|
|
}, 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?";
|
|
option "Try again", exit, sub menu nfssource, action
|
|
{ yesno = 1; ignorerror = 0; };
|
|
option "Give up", exit, action
|
|
{ yesno = 0; ignorerror = 0; };
|
|
option "Ignore, continue anyway", exit, action
|
|
{ yesno = 1; ignorerror = 1; };
|
|
|
|
|
|
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?";
|
|
option "Try again", exit, sub menu cdromsource, action
|
|
{ yesno = 1; ignorerror = 0; };
|
|
option "Give up", exit, action
|
|
{ yesno = 0; ignorerror = 0; };
|
|
option "Ignore, continue anyway", exit, action
|
|
{ yesno = 1; ignorerror = 1; };
|
|
|
|
|
|
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?";
|
|
option "Try again", exit, sub menu localfssource, action
|
|
{ yesno = 1; ignorerror = 0; };
|
|
option "Give up", exit, action
|
|
{ yesno = 0; ignorerror = 0; };
|
|
option "Ignore, continue anyway", exit, action
|
|
{ yesno = 1; ignorerror = 1; };
|
|
|
|
menu localdirsource, title "Change";
|
|
display action
|
|
{ msg_display(MSG_localdir, localfs_dir); };
|
|
option "Directory", action
|
|
{ msg_prompt (MSG_dir, localfs_dir, localfs_dir, STRSIZE); },
|
|
exit;
|
|
option "Continue", exit;
|
|
|
|
menu localdirbad, title " What do you want to do?";
|
|
option "Change directory path", action
|
|
{ yesno = 1;
|
|
msg_prompt(MSG_localdir, localfs_dir, localfs_dir, STRSIZE);
|
|
}, exit;
|
|
option "Give up", exit, action
|
|
{ yesno = 0; ignorerror = 0; };
|
|
option "Ignore, continue anyway", exit, action
|
|
{ yesno = 1; ignorerror = 1; };
|
|
|
|
|