xref: /plan9/sys/lib/dist/pc/inst/bootwin9x (revision a22b0629beb42d6ba21fb59ad976b0ded93891c9)
1#!/bin/rc
2
3dosdisk=`{ls /dev/sd??/dos >[2]/dev/null | sed 1q | sed 's!.*/(.*)/dos!\1!'}
4if(~ $#dosdisk 0 || ! c: || ! test -f /n/c:/autoexec.bat || ! test -f /n/c:/config.sys) {
5	echo 'Could not find autoexec.bat or config.sys on the first FAT disk.'
6	exit bad
7}
8
9for (i in autoexec config msdos)
10	if(test -f /n/c:/$i.p9) {
11		echo 'A Plan 9 backup already exists; will not edit system files again.'
12		exit bad
13	}
14
15for (i in autoexec.bat config.sys msdos.sys)
16	if(! cp /n/c:/$i /n/c:/^`{echo $i | sed 's/\.(bat|sys)$/.p9/'}) {
17		echo 'Could not back up '^$i^'; will not continue.'
18		exit bad
19	}
20
21if(! test -d /n/c:/plan9 && ! mkdir /n/c:/plan9) {
22	echo 'Could not create directory /n/c:/plan9.'
23	exit bad
24}
25
26if(! cp /n/newfs/386/^(9load ld.com 9pcdisk) /tmp/plan9ini.bak /n/c:/plan9) {
27	echo 'Could not copy Plan 9 boot files into /n/c:/plan9.'
28	exit bad
29}
30
31chmod +w /n/c:/autoexec.bat /n/c:/config.sys /n/c:/msdos.sys
32
33if(grep -si 'Plan ?9' /n/c:/config.sys || grep -si 'Plan ?9' /n/c:/autoexec.bat) {
34	echo 'Plan 9 entries already in config.sys or autoexec.bat.'
35	echo 'Not changing them; refer to Plan 9 install documentation'
36	echo 'to configure manually.'
37	exit bad
38}
39
40if(! grep -si '\[menu\]' /n/c:/config.sys) {
41	{
42		echo 1
43		echo i
44		echo '[menu]
45'
46		echo 'menuitem=windows, Windows
47'
48		echo 'menudefault=windows
49'
50		echo '
51'
52		echo '[common]
53'
54		echo '
55'
56		echo '[windows]
57'
58		echo .
59		echo w
60		echo q
61	} | ed /n/c:/config.sys >/dev/null >[2]/dev/null
62}
63
64{
65	echo 1
66	echo '/\[[Mm][Ee][Nn][Uu]\]'
67	echo '?^[Mm][Ee][Nn][Uu][Ii][Tt][Ee][Mm]='
68	echo a
69	echo 'menuitem=plan9, Plan 9 from Bell Labs
70'
71	echo .
72	echo '$'
73	echo a
74	echo '
75'
76	echo '[plan9]
77'
78	echo '
79'
80	echo .
81	echo w
82	echo q
83} | ed /n/c:/config.sys >/dev/null>[2]/dev/null
84
85{
86	echo 1
87	echo i
88	echo '@echo off
89'
90	echo 'if %config%==plan9 goto plan9
91'
92	echo 'goto notplan9
93'
94	echo ':plan9
95'
96	echo 'plan9\ld '^$dosdisk^'!dos!plan9/9load
97'
98	echo ':notplan9
99'
100	echo .
101	echo w
102	echo q
103} | ed /n/c:/autoexec.bat >/dev/null>[2]/dev/null
104
105fn zeroopt {
106	if(grep -s '^'^$1^'=1' /n/c:/msdos.sys) {
107		{
108			echo '/^'^$1^'=1/s/=1/=0/'
109			echo w
110			echo q
111		} | ed /n/c:/msdos.sys>/dev/null>[2]/dev/null
112	}
113	if not if (grep -s '^'^$1^'=0' /n/c:/msdos.sys)
114		;
115	if not {
116		{
117			echo 1
118			echo i
119			echo '[Options]
120'
121			echo 'Logo=0
122'
123			echo .
124			echo w
125			echo q
126		} | ed /n/c:/msdos.sys>/dev/null>[2]/dev/null
127	}
128}
129
130if(grep -si '^\[paths\]' /n/c:/msdos.sys){	# Windows 9x rather than DOS
131	zeroopt Logo
132#	zeroopt BootGUI
133}
134
135echo 'Plan 9 added to Windows 9X boot menu.'
136exit ''
137