123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- #!/bin/rc
- dosdisk=`{ls /dev/sd??/dos >[2]/dev/null | sed 1q | sed 's!.*/(.*)/dos!\1!'}
- if(~ $#dosdisk 0 || ! c: || ! test -f /n/c:/autoexec.bat || ! test -f /n/c:/config.sys) {
- echo 'Could not find autoexec.bat or config.sys on the first FAT disk.'
- exit bad
- }
- for (i in autoexec config msdos)
- if(test -f /n/c:/$i.p9) {
- echo 'A Plan 9 backup already exists; will not edit system files again.'
- exit bad
- }
- for (i in autoexec.bat config.sys msdos.sys)
- if(! cp /n/c:/$i /n/c:/^`{echo $i | sed 's/\.(bat|sys)$/.p9/'}) {
- echo 'Could not back up '^$i^'; will not continue.'
- exit bad
- }
- if(! test -d /n/c:/plan9 && ! mkdir /n/c:/plan9) {
- echo 'Could not create directory /n/c:/plan9.'
- exit bad
- }
- if(! cp /n/newfs/386/^(9load ld.com 9pcdisk) /tmp/plan9ini.bak /n/c:/plan9) {
- echo 'Could not copy Plan 9 boot files into /n/c:/plan9.'
- exit bad
- }
- chmod +w /n/c:/autoexec.bat /n/c:/config.sys /n/c:/msdos.sys
- if(grep -si 'Plan ?9' /n/c:/config.sys || grep -si 'Plan ?9' /n/c:/autoexec.bat) {
- echo 'Plan 9 entries already in config.sys or autoexec.bat.'
- echo 'Not changing them; refer to Plan 9 install documentation'
- echo 'to configure manually.'
- exit bad
- }
- if(! grep -si '\[menu\]' /n/c:/config.sys) {
- {
- echo 1
- echo i
- echo '[menu]
'
- echo 'menuitem=windows, Windows
'
- echo 'menudefault=windows
'
- echo '
'
- echo '[common]
'
- echo '
'
- echo '[windows]
'
- echo .
- echo w
- echo q
- } | ed /n/c:/config.sys >/dev/null >[2]/dev/null
- }
- {
- echo 1
- echo '/\[[Mm][Ee][Nn][Uu]\]'
- echo '?^[Mm][Ee][Nn][Uu][Ii][Tt][Ee][Mm]='
- echo a
- echo 'menuitem=plan9, Plan 9 from Bell Labs
'
- echo .
- echo '$'
- echo a
- echo '
'
- echo '[plan9]
'
- echo '
'
- echo .
- echo w
- echo q
- } | ed /n/c:/config.sys >/dev/null>[2]/dev/null
- {
- echo 1
- echo i
- echo '@echo off
'
- echo 'if %config%==plan9 goto plan9
'
- echo 'goto notplan9
'
- echo ':plan9
'
- echo 'plan9\ld '^$dosdisk^'!dos!plan9/9load
'
- echo ':notplan9
'
- echo .
- echo w
- echo q
- } | ed /n/c:/autoexec.bat >/dev/null>[2]/dev/null
- fn zeroopt {
- if(grep -s '^'^$1^'=1' /n/c:/msdos.sys) {
- {
- echo '/^'^$1^'=1/s/=1/=0/'
- echo w
- echo q
- } | ed /n/c:/msdos.sys>/dev/null>[2]/dev/null
- }
- if not if (grep -s '^'^$1^'=0' /n/c:/msdos.sys)
- ;
- if not {
- {
- echo 1
- echo i
- echo '[Options]
'
- echo 'Logo=0
'
- echo .
- echo w
- echo q
- } | ed /n/c:/msdos.sys>/dev/null>[2]/dev/null
- }
- }
- if(grep -si '^\[paths\]' /n/c:/msdos.sys){ # Windows 9x rather than DOS
- zeroopt Logo
- # zeroopt BootGUI
- }
-
- echo 'Plan 9 added to Windows 9X boot menu.'
- exit ''
|