Annotation of /trunk/mage/usr/lib/mage/mageupgrade.sh
Parent Directory | Revision Log
Revision 60 -
(hide annotations)
(download)
(as text)
Tue Feb 15 22:59:14 2005 UTC (19 years, 7 months ago) by niro
File MIME type: application/x-sh
File size: 2730 byte(s)
Tue Feb 15 22:59:14 2005 UTC (19 years, 7 months ago) by niro
File MIME type: application/x-sh
File size: 2730 byte(s)
rev bump to 0.3.6-r13
1 | niro | 32 | #!/bin/bash |
2 | |||
3 | # mage upgrade | ||
4 | niro | 60 | # version: 0.3.6-r13 |
5 | niro | 32 | |
6 | # some default vars | ||
7 | : ${MLIBDIR=/usr/lib/mage} | ||
8 | : ${DEBUG=false} | ||
9 | : ${AUTOANSWER=false} | ||
10 | |||
11 | source /etc/mage.rc | ||
12 | source ${MLIBDIR}/mage3.functions.sh | ||
13 | |||
14 | unset UPGRADE_LIST | ||
15 | unset PLEASE_VALIDATE | ||
16 | |||
17 | # get list | ||
18 | for directory in ${INSTALLDB}/* | ||
19 | do | ||
20 | # supress virtuals and fake packages or files | ||
21 | x=$(basename ${directory}) | ||
22 | if [ ${x} = fake ] || | ||
23 | [ ${x} = virtual ] || | ||
24 | [ ${x} = virtuals ] || | ||
25 | [ ${x} = virtuals.old ] || | ||
26 | [ ! -d ${directory} ] | ||
27 | then | ||
28 | continue | ||
29 | fi | ||
30 | |||
31 | for package in ${directory}/* | ||
32 | do | ||
33 | x=$(basename ${package}) | ||
34 | PNAME=${x%-*-*} | ||
35 | PVER=$(echo ${x#${PNAME}-}| cut -d- -f1) | ||
36 | PBUILD=$(echo ${x#${PNAME}-}| cut -d- -f2) | ||
37 | PCAT=$(basename $(dirname ${package})) | ||
38 | |||
39 | # check if there is any higher version in mage db | ||
40 | |||
41 | #needed packages may have ben renamed ?? | ||
42 | if [ -d ${MAGEDIR}/${PCAT}/${PNAME} ] | ||
43 | then | ||
44 | niro | 37 | CATEGORIE=${PCAT} MAGENAME=${PNAME} get_highest_magefile &> /dev/null |
45 | niro | 32 | |
46 | #compare them | ||
47 | if [[ $(basename ${HIGHEST_MAGEFILE} .mage) > ${PNAME}-${PVER}-${PBUILD} ]] | ||
48 | then | ||
49 | UPGRADE_LIST="${UPGRADE_LIST} ${PNAME}" | ||
50 | else | ||
51 | # put them only on PLEASE_VALIDATE if they are not the same package | ||
52 | if [[ $(basename ${HIGHEST_MAGEFILE} .mage) != ${PNAME}-${PVER}-${PBUILD} ]] | ||
53 | then | ||
54 | echo "Not added: ${PNAME}-${PVER}-${PBUILD} is newer than $(basename ${HIGHEST_MAGEFILE} .mage)." | ||
55 | PLEASE_VALIDATE="${PLEASE_VALIDATE} ${PNAME}-${PVER}-${PBUILD}" | ||
56 | fi | ||
57 | fi | ||
58 | fi | ||
59 | |||
60 | #unset some vars for shure | ||
61 | unset x | ||
62 | unset PNAME | ||
63 | unset PVER | ||
64 | unset PBUILD | ||
65 | unset PCAT | ||
66 | unset CATEGORIE | ||
67 | unset MAGENAME | ||
68 | unset HIGHEST_MAGEFILE | ||
69 | done | ||
70 | done | ||
71 | |||
72 | unset package directory | ||
73 | |||
74 | echo | ||
75 | echo "I'm now ready to upgrade your system." | ||
76 | echo "Press any key to continue or [CTRL-C] to abort ..." | ||
77 | echo | ||
78 | read | ||
79 | |||
80 | #now run the update | ||
81 | for package in ${UPGRADE_LIST} | ||
82 | do | ||
83 | /sbin/mage install ${package} || exit 1 | ||
84 | if [[ ${DEBUG} = true ]] | ||
85 | then | ||
86 | echo "Installation of ${package} completed." | ||
87 | echo "Press any key to continue ..." | ||
88 | read | ||
89 | fi | ||
90 | |||
91 | if [[ ${AUTOANSWER} = true ]] | ||
92 | then | ||
93 | yes | MAGE_UNINSTALL_TIMEOUT=0 /sbin/mage uninstall ${package} || exit 1 | ||
94 | else | ||
95 | MAGE_UNINSTALL_TIMEOUT=0 /sbin/mage uninstall ${package} || exit 1 | ||
96 | fi | ||
97 | |||
98 | if [[ ${DEBUG} = true ]] | ||
99 | then | ||
100 | echo "Uninstallation of ${package} completed." | ||
101 | echo "Press any key to continue ..." | ||
102 | read | ||
103 | fi | ||
104 | |||
105 | #resource /etc/profile | ||
106 | source /etc/profile | ||
107 | done | ||
108 | |||
109 | echo "The system upgrade is now complete." | ||
110 | echo -n "Would you like to see the list of ignored packages ? [ y/n ] " | ||
111 | read answer | ||
112 | if [[ ${answer} = y ]] | ||
113 | then | ||
114 | echo | ||
115 | for i in ${PLEASE_VALIDATE} | ||
116 | do | ||
117 | echo "avoided: ${i}" | ||
118 | done | ||
119 | fi | ||
120 | |||
121 | echo | ||
122 | echo "Please remember to run etc-update to update your config files." | ||
123 | echo "You should also source /etc/profile or re-login to your shell." | ||
124 | echo |