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