/* $NetBSD: menus.mi.eng,v 1.4 1997/10/07 04:01:31 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 #include #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 "Run /bin/sh", action (endwin) { system("/bin/sh"); puts(CL); }; option "Reboot the computer", exit, action (endwin) { run_prog("/sbin/reboot"); }; option "Halt the system", exit, action (endwin) { run_prog("/sbin/halt"); }; menu upgrade, title " Upgrade NetBSD"; display action { msg_display(MSG_upgr); }; option "Not completed, exit", exit; exit action { msg_clear(); }; 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 (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 { get_via_nfs(); }, exit; option "cdrom", action { }, exit; option "floppy", action { }, exit; */ option "none", action { nodist = 1; }, exit; 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;