diff options
author | jkh <jkh@FreeBSD.org> | 1995-05-04 19:48:19 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1995-05-04 19:48:19 +0000 |
commit | 1c3e871d62424f6b9dc0b6ac3b71d0bc9214fd36 (patch) | |
tree | f1ca440208c6915223a9c5cef917d2269e64f2ea /usr.sbin | |
parent | 35947edfc266ae5dc9fbe3da9c1339ed7e64dbc5 (diff) | |
download | FreeBSD-src-1c3e871d62424f6b9dc0b6ac3b71d0bc9214fd36.zip FreeBSD-src-1c3e871d62424f6b9dc0b6ac3b71d0bc9214fd36.tar.gz |
This will now write MBR entries - should be enough for testing.
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/sade/Makefile | 12 | ||||
-rw-r--r-- | usr.sbin/sade/devices.c | 20 | ||||
-rw-r--r-- | usr.sbin/sade/install.c | 39 | ||||
-rw-r--r-- | usr.sbin/sade/main.c | 13 | ||||
-rw-r--r-- | usr.sbin/sade/menus.c | 43 | ||||
-rw-r--r-- | usr.sbin/sade/msg.c | 7 | ||||
-rw-r--r-- | usr.sbin/sade/sade.h | 80 | ||||
-rw-r--r-- | usr.sbin/sade/system.c | 24 | ||||
-rw-r--r-- | usr.sbin/sysinstall/Makefile | 12 | ||||
-rw-r--r-- | usr.sbin/sysinstall/devices.c | 20 | ||||
-rw-r--r-- | usr.sbin/sysinstall/dist.c | 92 | ||||
-rw-r--r-- | usr.sbin/sysinstall/install.c | 39 | ||||
-rw-r--r-- | usr.sbin/sysinstall/main.c | 13 | ||||
-rw-r--r-- | usr.sbin/sysinstall/menus.c | 43 | ||||
-rw-r--r-- | usr.sbin/sysinstall/msg.c | 7 | ||||
-rw-r--r-- | usr.sbin/sysinstall/sysinstall.h | 80 | ||||
-rw-r--r-- | usr.sbin/sysinstall/system.c | 24 |
17 files changed, 394 insertions, 174 deletions
diff --git a/usr.sbin/sade/Makefile b/usr.sbin/sade/Makefile index 62b3c37..a6d0704 100644 --- a/usr.sbin/sade/Makefile +++ b/usr.sbin/sade/Makefile @@ -7,7 +7,7 @@ CLEANFILES= makedevs.c rtermcap SRCS = globals.c main.c dmenu.c menus.c \ misc.c msg.c system.c install.c \ termcap.c makedevs.c media.c variable.c \ - devices.c + devices.c dist.c lang.c CFLAGS += -Wall -g -I${.CURDIR}/../libdisk @@ -27,6 +27,7 @@ makedevs.c: dev2c.sh Makefile rtermcap # ( cd dev; sh ./MAKEDEV all ) # sh ${.CURDIR}/dev2c.sh dev > makedevs.tmp # rm -rf dev + rm -f makedevs.tmp uudecode < ${.CURDIR}/bteasy17.uu file2c 'const unsigned char boot0[] = {' '};' \ < bteasy17 >> makedevs.tmp @@ -41,6 +42,15 @@ makedevs.c: dev2c.sh Makefile rtermcap ./rtermcap cons25-m | \ file2c 'const char termcap_cons25_m[] = {' ',0};' \ >> makedevs.tmp + ./rtermcap cons25r | \ + file2c 'const char termcap_cons25r[] = {' ',0};' \ + >> makedevs.tmp + ./rtermcap cons25r-m | \ + file2c 'const char termcap_cons25r_m[] = {' ',0};' \ + >> makedevs.tmp + ./rtermcap cons25l1-m | \ + file2c 'const char termcap_cons25l1_m[] = {' ',0};' \ + >> makedevs.tmp ./rtermcap vt100 | \ file2c 'const char termcap_vt100[] = {' ',0};' \ >> makedevs.tmp diff --git a/usr.sbin/sade/devices.c b/usr.sbin/sade/devices.c index d45d2df..c777c0b 100644 --- a/usr.sbin/sade/devices.c +++ b/usr.sbin/sade/devices.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: devices.c,v 1.1 1995/05/01 21:56:19 jkh Exp $ + * $Id: devices.c,v 1.2 1995/05/04 03:51:14 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -43,6 +43,7 @@ #include "sysinstall.h" #include "libdisk.h" +#include <ctype.h> /* Where we start displaying chunk information on the screen */ #define CHUNK_START_ROW 5 @@ -112,7 +113,6 @@ print_chunks(char *disk, struct disk *d) mvprintw(3, 1, "%10s %10s %10s %8s %8s %8s %8s %8s", "Offset", "Size", "End", "Name", "PType", "Desc", "Subtype", "Flags"); - attrset(A_NORMAL); for (i = 0, row = CHUNK_START_ROW; chunk_info[i]; i++, row++) { if (i == current_chunk) attrset(A_BOLD); @@ -132,9 +132,10 @@ print_command_summary() mvprintw(15, 0, "The following commands are supported (in upper or lower case):"); mvprintw(17, 0, "C = Create New Partition D = Delete Partition"); mvprintw(18, 0, "B = Scan For Bad Blocks U = Undo All Changes"); - mvprintw(19, 0, "ESC = Proceed to next screen"); + mvprintw(19, 0, "W = Write Changes ESC = Proceed to next screen"); mvprintw(21, 0, "The currently selected partition is displayed in "); attrset(A_BOLD); addstr("bold"); attrset(A_NORMAL); + mvprintw(22, 0, "Use F1 or `?' for help on this screen"); move(0, 0); } @@ -172,7 +173,7 @@ device_slice_disk(char *disk) } refresh(); - key = getch(); + key = toupper(getch()); switch (key) { case KEY_UP: case '-': @@ -203,7 +204,6 @@ device_slice_disk(char *disk) break; case 'B': - case 'b': if (chunk_info[current_chunk]->type != freebsd) msg = "Can only scan for bad blocks in FreeBSD partition."; else @@ -211,7 +211,6 @@ device_slice_disk(char *disk) break; case 'C': - case 'c': if (chunk_info[current_chunk]->type != unused) msg = "Partition in use, delete it first or move to an unused one."; else { @@ -233,7 +232,6 @@ device_slice_disk(char *disk) break; case 'D': - case 'd': if (chunk_info[current_chunk]->type == unused) msg = "Partition is already unused!"; else { @@ -243,12 +241,18 @@ device_slice_disk(char *disk) break; case 'U': - case 'u': Free_Disk(d); d = Open_Disk(disk); record_chunks(disk, d); break; + case 'W': + if (!msgYesNo("Are you sure you want to write this to disk?")) + Write_Disk(d); + else + msg = "Write not confirmed"; + break; + case 27: /* ESC */ chunking = FALSE; break; diff --git a/usr.sbin/sade/install.c b/usr.sbin/sade/install.c index 24b2a05..7de31ae 100644 --- a/usr.sbin/sade/install.c +++ b/usr.sbin/sade/install.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: install.c,v 1.4 1995/05/01 21:56:22 jkh Exp $ + * $Id: install.c,v 1.5 1995/05/04 03:51:16 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -133,40 +133,3 @@ installMaint(char *str) msgConfirm("Sorry, maintainance mode is not implemented in this version."); return 0; } - -int -installSetDeveloper(char *str) -{ - /* Dists = DIST_BIN | DIST_MAN | DIST_FOO; */ - return 0; -} - -int -installSetXDeveloper(char *str) -{ - return 0; -} - -int -installSetUser(char *str) -{ - return 0; -} - -int -installSetXUser(char *str) -{ - return 0; -} - -int -installSetMinimum(char *str) -{ - return 0; -} - -int -installSetEverything(char *str) -{ - return 0; -} diff --git a/usr.sbin/sade/main.c b/usr.sbin/sade/main.c index a1b1303..7a89927 100644 --- a/usr.sbin/sade/main.c +++ b/usr.sbin/sade/main.c @@ -4,7 +4,7 @@ * This is probably the last attempt in the `sysinstall' line, the next * generation being slated for what's essentially a complete rewrite. * - * $Id: main.c,v 1.1.1.1 1995/04/27 12:50:34 jkh Exp $ + * $Id: main.c,v 1.2 1995/05/04 03:51:17 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -43,6 +43,8 @@ #include "sysinstall.h" +extern DMenu MenuInitial; + int main(int argc, char **argv) { @@ -59,9 +61,12 @@ main(int argc, char **argv) systemWelcome(); /* Begin user dialog at outer menu */ - choice = scroll = curr = max = 0; - dmenuOpen(&MenuInitial, &choice, &scroll, &curr, &max); - + while (1) { + choice = scroll = curr = max = 0; + dmenuOpen(&MenuInitial, &choice, &scroll, &curr, &max); + if (getpid() != 1 || !msgYesNo("Are you sure you wish to exit? System will reboot.")) + break; + } /* Say goodnight, Gracie */ systemShutdown(); diff --git a/usr.sbin/sade/menus.c b/usr.sbin/sade/menus.c index a2c83e9..39d2194 100644 --- a/usr.sbin/sade/menus.c +++ b/usr.sbin/sade/menus.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: menus.c,v 1.4 1995/05/01 21:56:25 jkh Exp $ + * $Id: menus.c,v 1.5 1995/05/04 03:51:19 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -52,6 +52,7 @@ /* Forward decls for submenus */ extern DMenu MenuDocumentation; +extern DMenu MenuLanguage; extern DMenu MenuMedia; extern DMenu MenuInstallType; extern DMenu MenuInstallOptions; @@ -121,25 +122,25 @@ of the english versions.", /* prompt */ "Press F1 for more information", /* help line */ "language.hlp", /* help file */ { { "Danish", "Danish language and character set (ISO-8859-1)", /* D */ - DMENU_SET_VARIABLE, (void *)"LANG=da_DK.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_Danish, 0 }, { "Dutch", "Dutch language and character set (ISO-8859-1)", /* D */ - DMENU_SET_VARIABLE, (void *)"LANG=nl_NL.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_Dutch, 0 }, { "*English", "English language (system default)", /* E */ - DMENU_SET_VARIABLE, (void *)"LANG=en_US.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_English, 0 }, { "French", "French language and character set (ISO-8859-1)", /* F */ - DMENU_SET_VARIABLE, (void *)"LANG=fr_FR.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_French, 0 }, { "German", "German language and character set (ISO-8859-1)", /* G */ - DMENU_SET_VARIABLE, (void *)"LANG=de_DE.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_German, 0 }, { "Italian", "Italian language and character set (ISO-8859-1)", /* I */ - DMENU_SET_VARIABLE, (void *)"LANG=it_IT.ISO8859-1", 0 }, - { "Japanese", "Japanese language and character set (JIS?)", /* J */ - DMENU_SET_VARIABLE, (void *)"LANG=ja_JP.EUC", 0 }, + DMENU_CALL, (void *)lang_set_Italian, 0 }, + { "Japanese", "Japanese language and default character set (romaji)",/* J */ + DMENU_CALL, (void *)lang_set_Japanese, 0 }, { "Russian", "Russian language and character set (cp866-8x14)", /* R */ - DMENU_SET_VARIABLE, (void *)"LANG=ru_SU.KOI8-R", 0 }, + DMENU_CALL, (void *)lang_set_Russian, 0 }, { "Spanish", "Spanish language and character set (ISO-8859-1)", /* S */ - DMENU_SET_VARIABLE, (void *)"LANG=es_ES.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_Spanish, 0 }, { "Swedish", "Swedish language and character set (ISO-8859-1)", /* S */ - DMENU_SET_VARIABLE, (void *)"LANG=sv_SV.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_Swedish, 0 }, { NULL } }, }; @@ -179,20 +180,20 @@ These pick what we consider to be the most reasonable defaults for the \ type of system in question. If you would prefer to pick and choose \ the list of distributions yourself, simply select `custom'.", "Press F1 for more information on the various distributions", - "install_types.hlp", + "dist_types.hlp", { { "Developer", "Includes full sources, binaries and doc but no games.", - DMENU_CALL, (void *)installSetDeveloper, 0 }, + DMENU_CALL, (void *)distSetDeveloper, 0 }, { "X-Developer", "Same as above, but includes XFree86.", - DMENU_CALL, (void *)installSetXDeveloper, 0 }, + DMENU_CALL, (void *)distSetXDeveloper, 0 }, { "User", "General user. Binaries and doc but no sources.", - DMENU_CALL, (void *)installSetUser, 0 }, + DMENU_CALL, (void *)distSetUser, 0 }, { "X-User", "Same as above, but includes XFree86.", - DMENU_CALL, (void *)installSetXUser, 0 }, + DMENU_CALL, (void *)distSetXUser, 0 }, { "Minimal", "The smallest configuration possible.", - DMENU_CALL, (void *)installSetMinimum, 0 }, - { "Everything", "The entire kitchen sink, plus bedroom suite.", - DMENU_CALL, (void *)installSetEverything, 0 }, - { "Custom", "I don't want it canned! I want to drive!", + DMENU_CALL, (void *)distSetMinimum, 0 }, + { "Everything", "The entire source and binary distribution.", + DMENU_CALL, (void *)distSetEverything, 0 }, + { "Custom", "Specify your own distribution set", DMENU_SUBMENU, (void *)&MenuDistributions, 0 }, { NULL } }, }; diff --git a/usr.sbin/sade/msg.c b/usr.sbin/sade/msg.c index a7bc625..e6c2ba2 100644 --- a/usr.sbin/sade/msg.c +++ b/usr.sbin/sade/msg.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: msg.c,v 1.2 1995/05/01 21:56:29 jkh Exp $ + * $Id: msg.c,v 1.3 1995/05/04 03:51:21 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -191,7 +191,7 @@ msgYesNo(char *fmt, ...) va_end(args); use_helpline(NULL); use_helpfile(NULL); - ret = dialog_yesno("User Confirmation Request", errstr, -1, -1); + ret = dialog_yesno("Decision Required", errstr, -1, -1); free(errstr); return ret; } @@ -202,8 +202,7 @@ msgGetInput(char *buf, char *fmt, ...) { va_list args; char *errstr; - char *ret; - static input_buffer[256]; + static char input_buffer[256]; int rval; errstr = (char *)malloc(FILENAME_MAX); diff --git a/usr.sbin/sade/sade.h b/usr.sbin/sade/sade.h index 17cd58ec..3152e2d 100644 --- a/usr.sbin/sade/sade.h +++ b/usr.sbin/sade/sade.h @@ -4,7 +4,7 @@ * This is probably the last attempt in the `sysinstall' line, the next * generation being slated to essentially a complete rewrite. * - * $Id: sysinstall.h,v 1.4 1995/05/01 21:56:30 jkh Exp $ + * $Id: sysinstall.h,v 1.5 1995/05/04 03:51:22 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -58,6 +58,49 @@ #define DMENU_MULTIPLE_TYPE 0x4 /* Multiple choice menu */ #define DMENU_SELECTION_RETURNS 0x8 /* Select item then exit */ +/* Bitfields for distributions - hope we never have more than 32! :-) */ +#define DIST_BIN 0x1 +#define DIST_GAMES 0x2 +#define DIST_MANPAGES 0x4 +#define DIST_PROFLIBS 0x8 +#define DIST_DICT 0x10 +#define DIST_SRC 0x20 +#define DIST_DES 0x40 +#define DIST_COMPAT1X 0x80 +#define DIST_XFREE86 0x100 +#define DIST_ALL 0xFFF + +/* Canned distribution sets */ +#define _DIST_DEVELOPER \ + (DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_PROFLIBS | DIST_SRC) + +#define _DIST_XDEVELOPER \ + (_DIST_DEVELOPER | DIST_XFREE86) + +#define _DIST_USER \ + (DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_COMPAT1X) + +#define _DIST_XUSER \ + (_DIST_USER | DIST_XFREE86) + + +/* Subtypes for SRC distribution */ +#define DIST_SRC_BASE 0x1 +#define DIST_SRC_GNU 0x2 +#define DIST_SRC_ETC 0x4 +#define DIST_SRC_GAMES 0x8 +#define DIST_SRC_INCLUDE 0x10 +#define DIST_SRC_LIB 0x20 +#define DIST_SRC_LIBEXEC 0x40 +#define DIST_SRC_LKM 0x80 +#define DIST_SRC_RELEASE 0x100 +#define DIST_SRC_SBIN 0x200 +#define DIST_SRC_SHARE 0x400 +#define DIST_SRC_SYS 0x800 +#define DIST_SRC_UBIN 0x1000 +#define DIST_SRC_USBIN 0x2000 +#define DIST_SRC_ALL 0xFFFF + /* variable limits */ #define VAR_NAME_MAX 128 #define VAR_VALUE_MAX 1024 @@ -130,9 +173,8 @@ extern Boolean OnCDROM; /* Are we running off of a CDROM? */ extern Boolean OnSerial; /* Are we on a serial console? */ extern Boolean DialogActive; /* Is the dialog() stuff up? */ extern Variable *VarHead; /* The head of the variable chain */ - -/* All the menus to which forward references exist */ -extern DMenu MenuDocumenation, MenuInitial, MenuLanguage; +extern unsigned int Dists; /* Which distributions we want */ +extern unsigned int SrcDists; /* Which src distributions we want */ /*** Prototypes ***/ @@ -144,12 +186,14 @@ extern void globalsInit(void); extern int installCustom(char *str); extern int installExpress(char *str); extern int installMaint(char *str); -extern int installSetDeveloper(char *str); -extern int installSetXDeveloper(char *str); -extern int installSetUser(char *str); -extern int installSetXUser(char *str); -extern int installSetMinimum(char *str); -extern int installSetEverything(char *str); + +/* dist.c */ +extern int distSetDeveloper(char *str); +extern int distSetXDeveloper(char *str); +extern int distSetUser(char *str); +extern int distSetXUser(char *str); +extern int distSetMinimum(char *str); +extern int distSetEverything(char *str); /* system.c */ extern void systemInitialize(int argc, char **argv); @@ -159,6 +203,10 @@ extern int systemExecute(char *cmd); extern int systemShellEscape(void); extern int systemDisplayFile(char *file); extern char *systemHelpFile(char *file, char *buf); +extern void systemChangeFont(char *font); +extern void systemChangeLang(char *lang); +extern void systemChangeTerminal(char *color, char *mono); +extern void systemChangeScreenmap(char *newmap); /* dmenu.c */ extern void dmenuOpen(DMenu *menu, int *choice, int *scroll, @@ -208,5 +256,17 @@ extern DMenu *device_create_disk_menu(DMenu *menu, Device **rdevs, extern void variable_set(char *var); extern void variable_set2(char *name, char *value); +/* lang.c */ +extern void lang_set_Danish(char *str); +extern void lang_set_Dutch(char *str); +extern void lang_set_English(char *str); +extern void lang_set_French(char *str); +extern void lang_set_German(char *str); +extern void lang_set_Italian(char *str); +extern void lang_set_Japanese(char *str); +extern void lang_set_Russian(char *str); +extern void lang_set_Spanish(char *str); +extern void lang_set_Swedish(char *str); + #endif /* _SYSINSTALL_H_INCLUDE */ diff --git a/usr.sbin/sade/system.c b/usr.sbin/sade/system.c index 4e59d9b..3c4b268 100644 --- a/usr.sbin/sade/system.c +++ b/usr.sbin/sade/system.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: system.c,v 1.2 1995/04/29 19:33:06 jkh Exp $ + * $Id: system.c,v 1.3 1995/05/01 21:56:31 jkh Exp $ * * Jordan Hubbard * @@ -199,3 +199,25 @@ systemHelpFile(char *file, char *buf) } return fname; } + +void +systemChangeFont(char *font) +{ +} + +void +systemChangeLang(char *lang) +{ + variable_set2("LANG", lang); +} + +void +systemChangeTerminal(char *color, char *mono) +{ + /* Do something with setterm */ +} + +void +systemChangeScreenmap(char *newmap) +{ +} diff --git a/usr.sbin/sysinstall/Makefile b/usr.sbin/sysinstall/Makefile index 62b3c37..a6d0704 100644 --- a/usr.sbin/sysinstall/Makefile +++ b/usr.sbin/sysinstall/Makefile @@ -7,7 +7,7 @@ CLEANFILES= makedevs.c rtermcap SRCS = globals.c main.c dmenu.c menus.c \ misc.c msg.c system.c install.c \ termcap.c makedevs.c media.c variable.c \ - devices.c + devices.c dist.c lang.c CFLAGS += -Wall -g -I${.CURDIR}/../libdisk @@ -27,6 +27,7 @@ makedevs.c: dev2c.sh Makefile rtermcap # ( cd dev; sh ./MAKEDEV all ) # sh ${.CURDIR}/dev2c.sh dev > makedevs.tmp # rm -rf dev + rm -f makedevs.tmp uudecode < ${.CURDIR}/bteasy17.uu file2c 'const unsigned char boot0[] = {' '};' \ < bteasy17 >> makedevs.tmp @@ -41,6 +42,15 @@ makedevs.c: dev2c.sh Makefile rtermcap ./rtermcap cons25-m | \ file2c 'const char termcap_cons25_m[] = {' ',0};' \ >> makedevs.tmp + ./rtermcap cons25r | \ + file2c 'const char termcap_cons25r[] = {' ',0};' \ + >> makedevs.tmp + ./rtermcap cons25r-m | \ + file2c 'const char termcap_cons25r_m[] = {' ',0};' \ + >> makedevs.tmp + ./rtermcap cons25l1-m | \ + file2c 'const char termcap_cons25l1_m[] = {' ',0};' \ + >> makedevs.tmp ./rtermcap vt100 | \ file2c 'const char termcap_vt100[] = {' ',0};' \ >> makedevs.tmp diff --git a/usr.sbin/sysinstall/devices.c b/usr.sbin/sysinstall/devices.c index d45d2df..c777c0b 100644 --- a/usr.sbin/sysinstall/devices.c +++ b/usr.sbin/sysinstall/devices.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: devices.c,v 1.1 1995/05/01 21:56:19 jkh Exp $ + * $Id: devices.c,v 1.2 1995/05/04 03:51:14 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -43,6 +43,7 @@ #include "sysinstall.h" #include "libdisk.h" +#include <ctype.h> /* Where we start displaying chunk information on the screen */ #define CHUNK_START_ROW 5 @@ -112,7 +113,6 @@ print_chunks(char *disk, struct disk *d) mvprintw(3, 1, "%10s %10s %10s %8s %8s %8s %8s %8s", "Offset", "Size", "End", "Name", "PType", "Desc", "Subtype", "Flags"); - attrset(A_NORMAL); for (i = 0, row = CHUNK_START_ROW; chunk_info[i]; i++, row++) { if (i == current_chunk) attrset(A_BOLD); @@ -132,9 +132,10 @@ print_command_summary() mvprintw(15, 0, "The following commands are supported (in upper or lower case):"); mvprintw(17, 0, "C = Create New Partition D = Delete Partition"); mvprintw(18, 0, "B = Scan For Bad Blocks U = Undo All Changes"); - mvprintw(19, 0, "ESC = Proceed to next screen"); + mvprintw(19, 0, "W = Write Changes ESC = Proceed to next screen"); mvprintw(21, 0, "The currently selected partition is displayed in "); attrset(A_BOLD); addstr("bold"); attrset(A_NORMAL); + mvprintw(22, 0, "Use F1 or `?' for help on this screen"); move(0, 0); } @@ -172,7 +173,7 @@ device_slice_disk(char *disk) } refresh(); - key = getch(); + key = toupper(getch()); switch (key) { case KEY_UP: case '-': @@ -203,7 +204,6 @@ device_slice_disk(char *disk) break; case 'B': - case 'b': if (chunk_info[current_chunk]->type != freebsd) msg = "Can only scan for bad blocks in FreeBSD partition."; else @@ -211,7 +211,6 @@ device_slice_disk(char *disk) break; case 'C': - case 'c': if (chunk_info[current_chunk]->type != unused) msg = "Partition in use, delete it first or move to an unused one."; else { @@ -233,7 +232,6 @@ device_slice_disk(char *disk) break; case 'D': - case 'd': if (chunk_info[current_chunk]->type == unused) msg = "Partition is already unused!"; else { @@ -243,12 +241,18 @@ device_slice_disk(char *disk) break; case 'U': - case 'u': Free_Disk(d); d = Open_Disk(disk); record_chunks(disk, d); break; + case 'W': + if (!msgYesNo("Are you sure you want to write this to disk?")) + Write_Disk(d); + else + msg = "Write not confirmed"; + break; + case 27: /* ESC */ chunking = FALSE; break; diff --git a/usr.sbin/sysinstall/dist.c b/usr.sbin/sysinstall/dist.c new file mode 100644 index 0000000..2733bb2 --- /dev/null +++ b/usr.sbin/sysinstall/dist.c @@ -0,0 +1,92 @@ +/* + * The new sysinstall program. + * + * This is probably the last program in the `sysinstall' line - the next + * generation being essentially a complete rewrite. + * + * $Id: install.c,v 1.5 1995/05/04 03:51:16 jkh Exp $ + * + * Copyright (c) 1995 + * Jordan Hubbard. All rights reserved. + * + * 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, + * verbatim and that no modifications are made prior to this + * point in the file. + * 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 developed by Jordan Hubbard + * for the FreeBSD Project. + * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``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 JORDAN HUBBARD OR HIS PETS 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, LIFE 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. + * + */ + +#include "sysinstall.h" + +unsigned int Dists; +unsigned int SrcDists; + +int +distSetDeveloper(char *str) +{ + Dists = _DIST_DEVELOPER; + SrcDists = DIST_SRC_ALL; + return 0; +} + +int +distSetXDeveloper(char *str) +{ + Dists = _DIST_XDEVELOPER; + SrcDists = DIST_SRC_ALL; + return 0; +} + +int +distSetUser(char *str) +{ + Dists = _DIST_USER; + return 0; +} + +int +distSetXUser(char *str) +{ + Dists = _DIST_XUSER; + return 0; +} + +int +distSetMinimum(char *str) +{ + Dists = DIST_BIN; + return 0; +} + +int +distSetEverything(char *str) +{ + Dists = DIST_ALL; + SrcDists = DIST_SRC_ALL; + return 0; +} diff --git a/usr.sbin/sysinstall/install.c b/usr.sbin/sysinstall/install.c index 24b2a05..7de31ae 100644 --- a/usr.sbin/sysinstall/install.c +++ b/usr.sbin/sysinstall/install.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: install.c,v 1.4 1995/05/01 21:56:22 jkh Exp $ + * $Id: install.c,v 1.5 1995/05/04 03:51:16 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -133,40 +133,3 @@ installMaint(char *str) msgConfirm("Sorry, maintainance mode is not implemented in this version."); return 0; } - -int -installSetDeveloper(char *str) -{ - /* Dists = DIST_BIN | DIST_MAN | DIST_FOO; */ - return 0; -} - -int -installSetXDeveloper(char *str) -{ - return 0; -} - -int -installSetUser(char *str) -{ - return 0; -} - -int -installSetXUser(char *str) -{ - return 0; -} - -int -installSetMinimum(char *str) -{ - return 0; -} - -int -installSetEverything(char *str) -{ - return 0; -} diff --git a/usr.sbin/sysinstall/main.c b/usr.sbin/sysinstall/main.c index a1b1303..7a89927 100644 --- a/usr.sbin/sysinstall/main.c +++ b/usr.sbin/sysinstall/main.c @@ -4,7 +4,7 @@ * This is probably the last attempt in the `sysinstall' line, the next * generation being slated for what's essentially a complete rewrite. * - * $Id: main.c,v 1.1.1.1 1995/04/27 12:50:34 jkh Exp $ + * $Id: main.c,v 1.2 1995/05/04 03:51:17 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -43,6 +43,8 @@ #include "sysinstall.h" +extern DMenu MenuInitial; + int main(int argc, char **argv) { @@ -59,9 +61,12 @@ main(int argc, char **argv) systemWelcome(); /* Begin user dialog at outer menu */ - choice = scroll = curr = max = 0; - dmenuOpen(&MenuInitial, &choice, &scroll, &curr, &max); - + while (1) { + choice = scroll = curr = max = 0; + dmenuOpen(&MenuInitial, &choice, &scroll, &curr, &max); + if (getpid() != 1 || !msgYesNo("Are you sure you wish to exit? System will reboot.")) + break; + } /* Say goodnight, Gracie */ systemShutdown(); diff --git a/usr.sbin/sysinstall/menus.c b/usr.sbin/sysinstall/menus.c index a2c83e9..39d2194 100644 --- a/usr.sbin/sysinstall/menus.c +++ b/usr.sbin/sysinstall/menus.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: menus.c,v 1.4 1995/05/01 21:56:25 jkh Exp $ + * $Id: menus.c,v 1.5 1995/05/04 03:51:19 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -52,6 +52,7 @@ /* Forward decls for submenus */ extern DMenu MenuDocumentation; +extern DMenu MenuLanguage; extern DMenu MenuMedia; extern DMenu MenuInstallType; extern DMenu MenuInstallOptions; @@ -121,25 +122,25 @@ of the english versions.", /* prompt */ "Press F1 for more information", /* help line */ "language.hlp", /* help file */ { { "Danish", "Danish language and character set (ISO-8859-1)", /* D */ - DMENU_SET_VARIABLE, (void *)"LANG=da_DK.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_Danish, 0 }, { "Dutch", "Dutch language and character set (ISO-8859-1)", /* D */ - DMENU_SET_VARIABLE, (void *)"LANG=nl_NL.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_Dutch, 0 }, { "*English", "English language (system default)", /* E */ - DMENU_SET_VARIABLE, (void *)"LANG=en_US.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_English, 0 }, { "French", "French language and character set (ISO-8859-1)", /* F */ - DMENU_SET_VARIABLE, (void *)"LANG=fr_FR.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_French, 0 }, { "German", "German language and character set (ISO-8859-1)", /* G */ - DMENU_SET_VARIABLE, (void *)"LANG=de_DE.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_German, 0 }, { "Italian", "Italian language and character set (ISO-8859-1)", /* I */ - DMENU_SET_VARIABLE, (void *)"LANG=it_IT.ISO8859-1", 0 }, - { "Japanese", "Japanese language and character set (JIS?)", /* J */ - DMENU_SET_VARIABLE, (void *)"LANG=ja_JP.EUC", 0 }, + DMENU_CALL, (void *)lang_set_Italian, 0 }, + { "Japanese", "Japanese language and default character set (romaji)",/* J */ + DMENU_CALL, (void *)lang_set_Japanese, 0 }, { "Russian", "Russian language and character set (cp866-8x14)", /* R */ - DMENU_SET_VARIABLE, (void *)"LANG=ru_SU.KOI8-R", 0 }, + DMENU_CALL, (void *)lang_set_Russian, 0 }, { "Spanish", "Spanish language and character set (ISO-8859-1)", /* S */ - DMENU_SET_VARIABLE, (void *)"LANG=es_ES.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_Spanish, 0 }, { "Swedish", "Swedish language and character set (ISO-8859-1)", /* S */ - DMENU_SET_VARIABLE, (void *)"LANG=sv_SV.ISO8859-1", 0 }, + DMENU_CALL, (void *)lang_set_Swedish, 0 }, { NULL } }, }; @@ -179,20 +180,20 @@ These pick what we consider to be the most reasonable defaults for the \ type of system in question. If you would prefer to pick and choose \ the list of distributions yourself, simply select `custom'.", "Press F1 for more information on the various distributions", - "install_types.hlp", + "dist_types.hlp", { { "Developer", "Includes full sources, binaries and doc but no games.", - DMENU_CALL, (void *)installSetDeveloper, 0 }, + DMENU_CALL, (void *)distSetDeveloper, 0 }, { "X-Developer", "Same as above, but includes XFree86.", - DMENU_CALL, (void *)installSetXDeveloper, 0 }, + DMENU_CALL, (void *)distSetXDeveloper, 0 }, { "User", "General user. Binaries and doc but no sources.", - DMENU_CALL, (void *)installSetUser, 0 }, + DMENU_CALL, (void *)distSetUser, 0 }, { "X-User", "Same as above, but includes XFree86.", - DMENU_CALL, (void *)installSetXUser, 0 }, + DMENU_CALL, (void *)distSetXUser, 0 }, { "Minimal", "The smallest configuration possible.", - DMENU_CALL, (void *)installSetMinimum, 0 }, - { "Everything", "The entire kitchen sink, plus bedroom suite.", - DMENU_CALL, (void *)installSetEverything, 0 }, - { "Custom", "I don't want it canned! I want to drive!", + DMENU_CALL, (void *)distSetMinimum, 0 }, + { "Everything", "The entire source and binary distribution.", + DMENU_CALL, (void *)distSetEverything, 0 }, + { "Custom", "Specify your own distribution set", DMENU_SUBMENU, (void *)&MenuDistributions, 0 }, { NULL } }, }; diff --git a/usr.sbin/sysinstall/msg.c b/usr.sbin/sysinstall/msg.c index a7bc625..e6c2ba2 100644 --- a/usr.sbin/sysinstall/msg.c +++ b/usr.sbin/sysinstall/msg.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: msg.c,v 1.2 1995/05/01 21:56:29 jkh Exp $ + * $Id: msg.c,v 1.3 1995/05/04 03:51:21 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -191,7 +191,7 @@ msgYesNo(char *fmt, ...) va_end(args); use_helpline(NULL); use_helpfile(NULL); - ret = dialog_yesno("User Confirmation Request", errstr, -1, -1); + ret = dialog_yesno("Decision Required", errstr, -1, -1); free(errstr); return ret; } @@ -202,8 +202,7 @@ msgGetInput(char *buf, char *fmt, ...) { va_list args; char *errstr; - char *ret; - static input_buffer[256]; + static char input_buffer[256]; int rval; errstr = (char *)malloc(FILENAME_MAX); diff --git a/usr.sbin/sysinstall/sysinstall.h b/usr.sbin/sysinstall/sysinstall.h index 17cd58ec..3152e2d 100644 --- a/usr.sbin/sysinstall/sysinstall.h +++ b/usr.sbin/sysinstall/sysinstall.h @@ -4,7 +4,7 @@ * This is probably the last attempt in the `sysinstall' line, the next * generation being slated to essentially a complete rewrite. * - * $Id: sysinstall.h,v 1.4 1995/05/01 21:56:30 jkh Exp $ + * $Id: sysinstall.h,v 1.5 1995/05/04 03:51:22 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -58,6 +58,49 @@ #define DMENU_MULTIPLE_TYPE 0x4 /* Multiple choice menu */ #define DMENU_SELECTION_RETURNS 0x8 /* Select item then exit */ +/* Bitfields for distributions - hope we never have more than 32! :-) */ +#define DIST_BIN 0x1 +#define DIST_GAMES 0x2 +#define DIST_MANPAGES 0x4 +#define DIST_PROFLIBS 0x8 +#define DIST_DICT 0x10 +#define DIST_SRC 0x20 +#define DIST_DES 0x40 +#define DIST_COMPAT1X 0x80 +#define DIST_XFREE86 0x100 +#define DIST_ALL 0xFFF + +/* Canned distribution sets */ +#define _DIST_DEVELOPER \ + (DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_PROFLIBS | DIST_SRC) + +#define _DIST_XDEVELOPER \ + (_DIST_DEVELOPER | DIST_XFREE86) + +#define _DIST_USER \ + (DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_COMPAT1X) + +#define _DIST_XUSER \ + (_DIST_USER | DIST_XFREE86) + + +/* Subtypes for SRC distribution */ +#define DIST_SRC_BASE 0x1 +#define DIST_SRC_GNU 0x2 +#define DIST_SRC_ETC 0x4 +#define DIST_SRC_GAMES 0x8 +#define DIST_SRC_INCLUDE 0x10 +#define DIST_SRC_LIB 0x20 +#define DIST_SRC_LIBEXEC 0x40 +#define DIST_SRC_LKM 0x80 +#define DIST_SRC_RELEASE 0x100 +#define DIST_SRC_SBIN 0x200 +#define DIST_SRC_SHARE 0x400 +#define DIST_SRC_SYS 0x800 +#define DIST_SRC_UBIN 0x1000 +#define DIST_SRC_USBIN 0x2000 +#define DIST_SRC_ALL 0xFFFF + /* variable limits */ #define VAR_NAME_MAX 128 #define VAR_VALUE_MAX 1024 @@ -130,9 +173,8 @@ extern Boolean OnCDROM; /* Are we running off of a CDROM? */ extern Boolean OnSerial; /* Are we on a serial console? */ extern Boolean DialogActive; /* Is the dialog() stuff up? */ extern Variable *VarHead; /* The head of the variable chain */ - -/* All the menus to which forward references exist */ -extern DMenu MenuDocumenation, MenuInitial, MenuLanguage; +extern unsigned int Dists; /* Which distributions we want */ +extern unsigned int SrcDists; /* Which src distributions we want */ /*** Prototypes ***/ @@ -144,12 +186,14 @@ extern void globalsInit(void); extern int installCustom(char *str); extern int installExpress(char *str); extern int installMaint(char *str); -extern int installSetDeveloper(char *str); -extern int installSetXDeveloper(char *str); -extern int installSetUser(char *str); -extern int installSetXUser(char *str); -extern int installSetMinimum(char *str); -extern int installSetEverything(char *str); + +/* dist.c */ +extern int distSetDeveloper(char *str); +extern int distSetXDeveloper(char *str); +extern int distSetUser(char *str); +extern int distSetXUser(char *str); +extern int distSetMinimum(char *str); +extern int distSetEverything(char *str); /* system.c */ extern void systemInitialize(int argc, char **argv); @@ -159,6 +203,10 @@ extern int systemExecute(char *cmd); extern int systemShellEscape(void); extern int systemDisplayFile(char *file); extern char *systemHelpFile(char *file, char *buf); +extern void systemChangeFont(char *font); +extern void systemChangeLang(char *lang); +extern void systemChangeTerminal(char *color, char *mono); +extern void systemChangeScreenmap(char *newmap); /* dmenu.c */ extern void dmenuOpen(DMenu *menu, int *choice, int *scroll, @@ -208,5 +256,17 @@ extern DMenu *device_create_disk_menu(DMenu *menu, Device **rdevs, extern void variable_set(char *var); extern void variable_set2(char *name, char *value); +/* lang.c */ +extern void lang_set_Danish(char *str); +extern void lang_set_Dutch(char *str); +extern void lang_set_English(char *str); +extern void lang_set_French(char *str); +extern void lang_set_German(char *str); +extern void lang_set_Italian(char *str); +extern void lang_set_Japanese(char *str); +extern void lang_set_Russian(char *str); +extern void lang_set_Spanish(char *str); +extern void lang_set_Swedish(char *str); + #endif /* _SYSINSTALL_H_INCLUDE */ diff --git a/usr.sbin/sysinstall/system.c b/usr.sbin/sysinstall/system.c index 4e59d9b..3c4b268 100644 --- a/usr.sbin/sysinstall/system.c +++ b/usr.sbin/sysinstall/system.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: system.c,v 1.2 1995/04/29 19:33:06 jkh Exp $ + * $Id: system.c,v 1.3 1995/05/01 21:56:31 jkh Exp $ * * Jordan Hubbard * @@ -199,3 +199,25 @@ systemHelpFile(char *file, char *buf) } return fname; } + +void +systemChangeFont(char *font) +{ +} + +void +systemChangeLang(char *lang) +{ + variable_set2("LANG", lang); +} + +void +systemChangeTerminal(char *color, char *mono) +{ + /* Do something with setterm */ +} + +void +systemChangeScreenmap(char *newmap) +{ +} |