Magellan Linux

Contents of /mage/branches/alx-0_6_0/profiles/alx-060/forced-uninstall

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2180 - (show annotations) (download)
Wed May 18 22:55:40 2011 UTC (12 years, 11 months ago) by niro
File size: 4845 byte(s)
-set default to timeout after 10 seconds, not to send 10 packets

1 #!/bin/bash
2 # $Id$
3
4 MAGERC="/etc/mage.rc"
5 MAGEPROFILE="alx-060"
6 NEW_MAGE_DISTRIBUTION="unstable"
7 NEW_RSYNC="rsync://magellan-linux.de/mage-alx-0.6.0"
8 NEW_MIRRORS="http://magellan-linux.de/magellan/alx-0.6.0/${NEW_MAGE_DISTRIBUTION}"
9 NEW_PACKAGES_SERVER_PATH='packages/${ARCH}'
10 NEW_MAGE_UNINSTALL_TIMEOUT=0
11
12 CONFIGRC="/etc/alxconfig-ng/config.rc"
13 NEW_ALX_NETWORKING="dhcp"
14 NEW_ALX_DHCP_PROG="/sbin/udhcpc"
15 NEW_ALX_DHCP_START="-T 10"
16 NEW_ALX_DHCP_STOP=""
17
18 read_value()
19 {
20 local file=$1
21 local var=$2
22 local value
23
24 [[ ! -e ${file} ]] && return 1
25
26 value=$(source ${file}; echo $(eval echo \${${var}}))
27 echo "${value}"
28 return 0
29 }
30
31 updateconfig()
32 {
33 local variables="$@"
34 local value
35 local i
36
37 if [[ -z ${CONFIG} ]]
38 then
39 echo "You must define \$CONFIG varibale first!"
40 return 1
41 fi
42
43 for i in ${variables}
44 do
45 value="$(eval echo \${NEW_${i}})"
46 if [[ ! -z $(grep "^${i}=" ${CONFIG}) ]]
47 then
48 echo "fixing ${i} -> ${value}"
49 sed -i "s|^\(${i}=\).*|\1\"${value}\"|" ${CONFIG}
50 else
51 echo "adding ${i}=${value}"
52 echo "${i}=\"${value}\"" >> ${CONFIG}
53 fi
54 done
55 }
56
57 # fix mage.rc
58 CONFIG="${MAGERC}"
59 updateconfig RSYNC MIRRORS MAGE_DISTRIBUTION PACKAGES_SERVER_PATH MAGE_UNINSTALL_TIMEOUT
60
61 # fix config.rc
62 CONFIG="${CONFIGRC}"
63 updateconfig ALX_NETWORKING ALX_DHCP_PROG ALX_DHCP_START ALX_DHCP_STOP
64
65 # fix profile
66 if [[ $(readlink /etc/mage-profile) != */${MAGEPROFILE} ]]
67 then
68 echo "fixing profile link -> /usr/mage/profiles/${MAGEPROFILE}"
69 ln -snf /usr/mage/profiles/${MAGEPROFILE} /etc/mage-profile
70 fi
71
72 # update mage3 -> mage4
73 if [[ -z $(magequery -n mage) ]]
74 then
75 # update mage tree
76 mage update
77
78 # mage3 has problems with md5
79 rm -rf /usr/mage/app-mage/mage/md5
80 if [[ ${NEW_MAGE_DISTRIBUTION} = unstable ]]
81 then
82 USE_UNSTABLE=true MAGE_DISTRIBUTION=unstable mage install mage
83 elif [[ ${NEW_MAGE_DISTRIBUTION} = testing ]]
84 then
85 USE_TESTING=true MAGE_DISTRIBUTION=testing mage install mage
86 else
87 mage install mage
88 fi
89
90 # drop all virtuals
91 :> /var/db/mage/virtuals
92
93 # enable run of orphaned files check
94 touch /.orphaned
95
96 # tell that we're running an dist-upgrade
97 touch /.dist-upgrade
98 fi
99
100 # install new toolchain if not exist
101 TOOLCHAIN="$(< /etc/mage-profile/toolchain.defaults)"
102 if [[ -z $(magequery -n ${TOOLCHAIN}) ]]
103 then
104 # export bootstrap to not start any services
105 export MAGE_BOOTSTRAP=true
106 mage install ${TOOLCHAIN}
107 unset MAGE_BOOTSTRAP
108
109 # enable run of orphaned files check
110 touch /.orphaned
111
112 # tell that we're running an dist-upgrade
113 touch /.dist-upgrade
114 fi
115
116 # install new basesystem
117 BASESYSTEM="$(< /etc/mage-profile/basesystem.defaults)"
118 if [[ -z $(magequery -n ${BASESYSTEM}) ]]
119 then
120 # first keep some important files
121
122 # export bootstrap to not start any services
123 export MAGE_BOOTSTRAP=true
124 mage install ${BASESYSTEM}
125 unset MAGE_BOOTSTRAP
126
127 # enable run of orphaned files check
128 touch /.orphaned
129
130 # tell that we're running an dist-upgrade
131 touch /.dist-upgrade
132 fi
133
134 # install remserial, if the plugin was enabled
135 if [[ ! -z $(magequery -n remserial-alx) ]]
136 then
137 mage install remserial
138
139 # enable run of orphaned files check
140 touch /.orphaned
141 fi
142
143 # etc-update
144 #etc-update
145
146 # clean mage cache
147 mage clean
148
149 echo "Searching for deprecated packages ..."
150 for i in $(magequery -i | grep -- -alx | sed 's:.*/\(.*\)-.*-.*:\1:')
151 do
152 # excludes
153 case ${i} in
154 kernel-alx) continue ;;
155 kernel26-alx) continue ;;
156 kernel-sources-alx) continue ;;
157 kernel26-sources-alx) continue ;;
158 esac
159
160 echo "Removing deprecated mage-target '${i}'"
161 mage uninstall ${i}
162 done
163
164 if [[ -f /.dist-upgrade ]]
165 then
166 # array of wireless opts
167 WIRELESS_OPTS=( WIRELESS_BITRATE WIRELESS_CHANNEL WIRELESS_ESSID WIRELESS_FREQUENCY WIRELESS_MODE WIRELESS_NICK WIRELESS_AUTH_MODE WIRELESS_KEY_LENGTH WIRELESS_KEY WIRELESS_KEY_ASCII WIRELESS_WPA_DRIVER )
168
169 # fixing current dhcp network settings
170 #for i in $(grep -irl NETWORKING=.*dhcp.* /etc/conf.d/net.*)
171 for i in $(grep -irl DHCP_PROG=.*dhcpcd.* /etc/conf.d/net.*)
172 do
173 case ${i} in
174 */net.sample) continue ;;
175 */net.routes) continue ;;
176 esac
177
178 echo "fixing current dhcp network settings in '${i}'"
179 mv ${i}{,.orig}
180 onboot="$(read_value ${i}.orig ONBOOT)"
181 echo "ONBOOT=\"${onboot}\"" > ${i}
182 echo 'NETWORKING="dhcp"' >> ${i}
183 # check wireless extensions
184 for opt in ${WIRELESS_OPTS[*]}
185 do
186 value="$(read_value ${i}.orig ${opt})"
187 if [[ ! -z ${value} ]]
188 then
189 echo "${opt}=\"${value}\"" >> ${i}
190 fi
191 done
192 rm -f ${i}.orig
193 done
194 # search modules files
195 for i in $(find /etc/modules.d -name net.\*)
196 do
197 install -d /etc/modprobe.d
198 mv ${i} /etc/modprobe.d/${i%.conf}.conf
199 done
200 fi
201
202 if [[ -f /.orphaned ]]
203 then
204 echo "Searching for orphaned files and directories ..."
205 bash /etc/mage-profile/prune-orphaned-files
206 rm -f /.orphaned
207 fi
208
209 if [[ -f /.dist-upgrade ]]
210 then
211 rm -f /.dist-upgrade
212 # force a reboot at this point here
213 reboot -f
214 fi