Magellan Linux

Contents of /trunk/installer/include/prepare_disks.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1047 - (show annotations) (download) (as text)
Sun May 30 23:08:59 2010 UTC (13 years, 11 months ago) by niro
File MIME type: application/x-sh
File size: 2202 byte(s)
-better ncurses support

1 #!/bin/sh
2 # $Id$
3
4 : ${INSTALL_ROOT="/mnt/magellan"}
5 KNOWN_DISKS="ROOT BOOT SWAP HOME TMP USER VAR SVR OPT"
6
7 format_disks()
8 {
9 local disk
10 local disk_part
11 local disk_fs
12 local opts
13 local progress
14 local percent
15
16 declare -i progress=0
17
18 # disk format
19 for disk in ${KNOWN_DISKS}
20 do
21 disk_part=$(eval echo \$PARTITION_DISK_${disk})
22 disk_fs=$(eval echo \$PARTITION_FS_${disk})
23
24 if [[ ! -z ${disk_part} ]]
25 then
26 if [[ ! -z ${disk_fs} ]]
27 then
28 case ${disk_fs} in
29 swap) mkswap ${disk_part} &> /dev/null;;
30 reiserfs) mkfs.${disk_fs} -f ${disk_part} &> /dev/null;;
31 keep-as-is) echo "keeping as-is." ;;
32 *) mkfs.${disk_fs} ${disk_part} &> /dev/null;;
33 esac
34 fi
35 fi
36
37 (( progress++ ))
38 percent=$(echo ${progress} 9 | awk '{print ($1 / $2 * 100) - 1}')
39 if [[ ${GUITYPE} = ncurses ]]
40 then
41 # no floats in ncurses gui possible
42 printf %.0f "${percent}"
43 else
44 echo "${percent}"
45 fi
46 done
47
48 echo "100"
49 }
50
51 mount_disks()
52 {
53 local disk
54 local disk_part
55 local dest
56
57 # activate swap
58 swapon ${PARTITION_DISK_SWAP}
59
60 # first mount rootfs
61 mount ${PARTITION_DISK_ROOT} ${INSTALL_ROOT}
62
63 # than all other
64 for disk in ${KNOWN_DISKS}
65 do
66 case ${disk} in
67 BOOT) dest=boot ;;
68 HOME) dest=home ;;
69 TMP) dest=tmp ;;
70 USER) dest=usr ;;
71 VAR) dest=var ;;
72 SVR) dest=svr ;;
73 OPT) dest=opt ;;
74 *) continue ;;
75 esac
76
77 disk_part=$(eval echo \$PARTITION_DISK_${disk})
78 if [[ ! -z ${disk_part} ]]
79 then
80 install -d ${INSTALL_ROOT}/${dest}
81 mount ${disk_part} ${INSTALL_ROOT}/${dest}
82 fi
83 done
84 }
85
86 umount_disks()
87 {
88 local disk
89 local disk_part
90 local dest
91
92 # first umount all other
93 for disk in ${KNOWN_DISKS}
94 do
95 # excludes
96 case ${disk} in
97 ROOT) continue ;;
98 SWAP) continue ;;
99 esac
100
101 disk_part=$(eval echo \$PARTITION_DISK_${disk})
102 [[ ! -z ${disk_part} ]] && umount ${disk_part}
103 done
104
105 # then umount rootfs
106 umount ${PARTITION_DISK_ROOT}
107
108 # de-activate swap
109 swapoff ${PARTITION_DISK_SWAP}
110 }
111
112 case $1 in
113 --format | -f) format_disks ;;
114 --mount | -m ) mount_disks ;;
115 --umount | -u ) umount_disks ;;
116 *) echo "unknown option '$1'." ;;
117 esac
118
119 case $2 in
120 --ncurses) GUITYPE="ncurses" ;;
121 --gtk) GUITYPE="gtk" ;;
122 *) GUITYPE="gtk" ;;
123 esac

Properties

Name Value
svn:executable *