prepdisk 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/rc
  2. # desc: subdivide plan 9 disk partition
  3. # prereq: partdisk
  4. fn autotype {
  5. if(~ $fstype kfs)
  6. echo -a 9fat -a nvram -a fs -a swap
  7. if(~ $fstype fossil)
  8. echo -a 9fat -a nvram -a fossil -a swap
  9. if(~ $fstype fossil+venti)
  10. echo -a 9fat -a nvram -a arenas -a isect -a fossil -a swap # -a other
  11. }
  12. switch($1) {
  13. case checkready
  14. if(! test -f /dev/sd*/plan9*){
  15. prepdisk=notdone
  16. export prepdisk
  17. }
  18. case go
  19. echo 'The following Plan 9 disk partitions were found.'
  20. echo
  21. disks=(/dev/sd*/plan9*)
  22. for (i in $disks){
  23. echo $i
  24. echo q | disk/prep -r $i >[2]/dev/null
  25. echo
  26. }
  27. if(~ $#disks 1)
  28. default=(-d $disks)
  29. if not
  30. default=()
  31. prompt $default 'Plan 9 partition to subdivide' $disks
  32. disk=$rd
  33. echo 'This is disk/prep; use it to subdivide the Plan 9 partition.'
  34. echo 'If it is not yet subdivided, a sensible layout will be suggested;'
  35. echo 'you can probably just type ''w'' and then ''q''.'
  36. echo
  37. disk/prep `{autotype} $disk
  38. disk/prep -p $disk >`{basename -d $disk}^/ctl >[2]/dev/null
  39. case checkdone
  40. if(! test -f /dev/sd*/9fat)
  41. prepdisk=ready
  42. if(! ~ $prepdisk ready){
  43. prepdisk=done
  44. switch($fstype){
  45. case kfs
  46. if(! test -f /dev/sd*/fs* && ! test -f /dev/fs/fs*)
  47. prepdisk=ready
  48. case fossil
  49. if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*)
  50. prepdisk=ready
  51. case fossil+venti
  52. if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*)
  53. prepdisk=ready
  54. if(! test -f /dev/sd*/arenas && ! test -f /dev/fs/arenas*)
  55. prepdisk=ready
  56. if(! test -f /dev/sd*/isect && ! test -f /dev/fs/isect*)
  57. prepdisk=ready
  58. }
  59. }
  60. export prepdisk
  61. }