/* $NetBSD: menus.mi.eng,v 1.17 1997/12/05 14:01:04 jonathan 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 #include #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 { 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(); if (got_dist) process_menu (MENU_distset); }, exit; option "nfs", action { got_dist = get_via_nfs(); if (got_dist) process_menu (MENU_distset); }, exit; option "cdrom", action { got_dist = get_via_cdrom(); if (got_dist) process_menu (MENU_distset); }, exit; option "floppy", action { got_dist = get_via_floppy(); if (got_dist) process_menu (MENU_distset); }, exit; option "unmounted fs", action { got_dist = get_via_localfs(); if (got_dist) process_menu (MENU_distset); }, exit; option "local dir", action { got_dist = get_via_localdir(); if (got_dist) process_menu (MENU_distset); }, 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; };