xref: /plan9/sys/lib/dist/pc/inst/prepdisk (revision f92474249c02424d024ec937bd46aca5427c5a86)
19a747e4fSDavid du Colombier#!/bin/rc
29a747e4fSDavid du Colombier
39a747e4fSDavid du Colombier# desc: subdivide plan 9 disk partition
49a747e4fSDavid du Colombier# prereq: partdisk
59a747e4fSDavid du Colombier
6*39734e7eSDavid du Colombierfn autotype {
7*39734e7eSDavid du Colombier	if(~ $fstype fossil)
8*39734e7eSDavid du Colombier		echo -a 9fat -a nvram -a fossil -a swap
9*39734e7eSDavid du Colombier	if(~ $fstype fossil+venti)
10*39734e7eSDavid du Colombier		echo -a 9fat -a nvram -a arenas -a isect -a fossil -a swap # -a other
11*39734e7eSDavid du Colombier}
12*39734e7eSDavid du Colombier
139a747e4fSDavid du Colombierswitch($1) {
149a747e4fSDavid du Colombiercase checkready
159a747e4fSDavid du Colombier	if(! test -f /dev/sd*/plan9*){
169a747e4fSDavid du Colombier		prepdisk=notdone
179a747e4fSDavid du Colombier		export prepdisk
189a747e4fSDavid du Colombier	}
199a747e4fSDavid du Colombier
209a747e4fSDavid du Colombiercase go
219a747e4fSDavid du Colombier	echo 'The following Plan 9 disk partitions were found.'
229a747e4fSDavid du Colombier	echo
239a747e4fSDavid du Colombier	disks=(/dev/sd*/plan9*)
249a747e4fSDavid du Colombier	for (i in $disks){
259a747e4fSDavid du Colombier		echo $i
269a747e4fSDavid du Colombier		echo q | disk/prep -r $i >[2]/dev/null
279a747e4fSDavid du Colombier		echo
289a747e4fSDavid du Colombier	}
299a747e4fSDavid du Colombier	if(~ $#disks 1)
309a747e4fSDavid du Colombier		default=(-d $disks)
319a747e4fSDavid du Colombier	if not
329a747e4fSDavid du Colombier		default=()
339a747e4fSDavid du Colombier	prompt $default 'Plan 9 partition to subdivide' $disks
349a747e4fSDavid du Colombier	disk=$rd
359a747e4fSDavid du Colombier
369a747e4fSDavid du Colombier	echo 'This is disk/prep; use it to subdivide the Plan 9 partition.'
379a747e4fSDavid du Colombier	echo 'If it is not yet subdivided, a sensible layout will be suggested;'
389a747e4fSDavid du Colombier	echo 'you can probably just type ''w'' and then ''q''.'
399a747e4fSDavid du Colombier	echo
40*39734e7eSDavid du Colombier	disk/prep `{autotype} $disk
419a747e4fSDavid du Colombier	disk/prep -p $disk >`{basename -d $disk}^/ctl >[2]/dev/null
429a747e4fSDavid du Colombier
439a747e4fSDavid du Colombiercase checkdone
44*39734e7eSDavid du Colombier	if(! test -f /dev/sd*/9fat)
45*39734e7eSDavid du Colombier		prepdisk=ready
46*39734e7eSDavid du Colombier
47*39734e7eSDavid du Colombier	if(! ~ $prepdisk ready){
48*39734e7eSDavid du Colombier		prepdisk=done
49*39734e7eSDavid du Colombier		switch($fstype){
50*39734e7eSDavid du Colombier		case fossil
51*39734e7eSDavid du Colombier			if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*)
52*39734e7eSDavid du Colombier				prepdisk=ready
53*39734e7eSDavid du Colombier		case fossil+venti
54*39734e7eSDavid du Colombier			if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*)
55*39734e7eSDavid du Colombier				prepdisk=ready
56*39734e7eSDavid du Colombier			if(! test -f /dev/sd*/arenas && ! test -f /dev/fs/arenas*)
57*39734e7eSDavid du Colombier				prepdisk=ready
58*39734e7eSDavid du Colombier			if(! test -f /dev/sd*/isect && ! test -f /dev/fs/isect*)
59*39734e7eSDavid du Colombier				prepdisk=ready
609a747e4fSDavid du Colombier		}
619a747e4fSDavid du Colombier	}
62*39734e7eSDavid du Colombier	export prepdisk
63*39734e7eSDavid du Colombier}
64