xref: /plan9-contrib/sys/lib/dist/pc/inst/prepdisk (revision 3cdeec5c5169e8d928b070689be6770201eac7a6)
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
639734e7eSDavid du Colombierfn autotype {
739734e7eSDavid du Colombier	if(~ $fstype fossil)
839734e7eSDavid du Colombier		echo -a 9fat -a nvram -a fossil -a swap
939734e7eSDavid du Colombier	if(~ $fstype fossil+venti)
10*3cdeec5cSDavid du Colombier		echo -a 9fat -a nvram -a arenas -a isect -a bloom -a fossil -a swap # -a other
1139734e7eSDavid du Colombier}
1239734e7eSDavid 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
4039734e7eSDavid 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
4439734e7eSDavid du Colombier	if(! test -f /dev/sd*/9fat)
4539734e7eSDavid du Colombier		prepdisk=ready
4639734e7eSDavid du Colombier
4739734e7eSDavid du Colombier	if(! ~ $prepdisk ready){
4839734e7eSDavid du Colombier		prepdisk=done
4939734e7eSDavid du Colombier		switch($fstype){
5039734e7eSDavid du Colombier		case fossil
5139734e7eSDavid du Colombier			if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*)
5239734e7eSDavid du Colombier				prepdisk=ready
5339734e7eSDavid du Colombier		case fossil+venti
5439734e7eSDavid du Colombier			if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*)
5539734e7eSDavid du Colombier				prepdisk=ready
5639734e7eSDavid du Colombier			if(! test -f /dev/sd*/arenas && ! test -f /dev/fs/arenas*)
5739734e7eSDavid du Colombier				prepdisk=ready
5839734e7eSDavid du Colombier			if(! test -f /dev/sd*/isect && ! test -f /dev/fs/isect*)
5939734e7eSDavid du Colombier				prepdisk=ready
609a747e4fSDavid du Colombier		}
619a747e4fSDavid du Colombier	}
6239734e7eSDavid du Colombier	export prepdisk
6339734e7eSDavid du Colombier}
64