1 |
#!/bin/bash |
#!/bin/bash |
2 |
|
|
3 |
# mage upgrade |
# mage upgrade |
4 |
|
# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mageupgrade.sh,v 1.9 2005-07-29 14:18:41 niro Exp $ |
5 |
|
|
6 |
# some default vars |
# some default vars |
7 |
: ${MLIBDIR=/usr/lib/mage} |
: ${MLIBDIR=/usr/lib/mage} |
8 |
: ${DEBUG=false} |
: ${DEBUG=false} |
9 |
: ${AUTOANSWER=false} |
: ${AUTOANSWER=false} |
10 |
|
: ${SRCINSTALL=false} |
11 |
|
|
12 |
source /etc/mage.rc |
source /etc/mage.rc |
13 |
source ${MLIBDIR}/mage3.functions.sh |
source ${MLIBDIR}/mage3.functions.sh |
14 |
|
source /etc/init.d/functions |
15 |
|
|
16 |
|
|
17 |
unset UPGRADE_LIST |
unset UPGRADE_LIST |
18 |
unset PLEASE_VALIDATE |
unset PLEASE_VALIDATE |
19 |
|
|
20 |
|
echo "Fetching list of all installed packages ..." |
21 |
|
|
22 |
# get list |
# get list |
23 |
for directory in ${INSTALLDB}/* |
for directory in ${INSTALLDB}/* |
24 |
do |
do |
25 |
# supress virtuals and fake packages or files |
# supress virtuals and fake packages or files |
26 |
x=$(basename ${directory}) |
x=$(basename ${directory}) |
27 |
if [ ${x} = fake ] || |
if [ ${x} = virtual ] || |
|
[ ${x} = virtual ] || |
|
28 |
[ ${x} = virtuals ] || |
[ ${x} = virtuals ] || |
29 |
[ ${x} = virtuals.old ] || |
[ ${x} = virtuals.old ] || |
30 |
[ ! -d ${directory} ] |
[ ! -d ${directory} ] |
42 |
|
|
43 |
# check if there is any higher version in mage db |
# check if there is any higher version in mage db |
44 |
|
|
45 |
#needed packages may have ben renamed ?? |
# needed packages may have been renamed ?? |
46 |
if [ -d ${MAGEDIR}/${PCAT}/${PNAME} ] |
if [ -d ${MAGEDIR}/${PCAT}/${PNAME} ] |
47 |
then |
then |
48 |
CATEGORIE=${PCAT} MAGENAME=${PNAME} get_highest_magefile |
CATEGORIE=${PCAT} MAGENAME=${PNAME} get_highest_magefile &> /dev/null |
49 |
|
|
50 |
#compare them |
# compare them |
51 |
if [[ $(basename ${HIGHEST_MAGEFILE} .mage) > ${PNAME}-${PVER}-${PBUILD} ]] |
if [[ $(basename ${HIGHEST_MAGEFILE} .mage) > ${PNAME}-${PVER}-${PBUILD} ]] |
52 |
then |
then |
53 |
UPGRADE_LIST="${UPGRADE_LIST} ${PNAME}" |
UPGRADE_LIST="${UPGRADE_LIST} ${PNAME}" |
54 |
|
SHOW_LIST="${SHOW_LIST}:${PCAT}/${PNAME},[${PVER}-${PBUILD} -> $(basename ${HIGHEST_MAGEFILE#${HIGHEST_MAGEFILE%-*-*}-} .mage)]" |
55 |
else |
else |
56 |
# put them only on PLEASE_VALIDATE if they are not the same package |
# put them only on PLEASE_VALIDATE if they are not the same package |
57 |
if [[ $(basename ${HIGHEST_MAGEFILE} .mage) != ${PNAME}-${PVER}-${PBUILD} ]] |
if [[ $(basename ${HIGHEST_MAGEFILE} .mage) != ${PNAME}-${PVER}-${PBUILD} ]] |
62 |
fi |
fi |
63 |
fi |
fi |
64 |
|
|
65 |
#unset some vars for shure |
# unset some vars for sure |
66 |
unset x |
unset x |
67 |
unset PNAME |
unset PNAME |
68 |
unset PVER |
unset PVER |
76 |
|
|
77 |
unset package directory |
unset package directory |
78 |
|
|
79 |
|
# show the list |
80 |
|
echo |
81 |
|
echo "Packages selected for upgrade:" |
82 |
|
OLDIFS="${IFS}" |
83 |
|
IFS=: |
84 |
|
for package in ${SHOW_LIST} |
85 |
|
do |
86 |
|
# nice output :) |
87 |
|
echo -en \\033[10G |
88 |
|
echo -en ${COLGREEN}"$(echo ${package} | cut -d',' -f1)"${COLDEFAULT} |
89 |
|
echo -en \\033[40G |
90 |
|
echo -e ${COLBLUE}"$(echo ${package} | cut -d',' -f2)"${COLDEFAULT} |
91 |
|
done |
92 |
|
IFS="${OLDIFS}" |
93 |
|
|
94 |
|
|
95 |
echo |
echo |
96 |
echo "I'm now ready to upgrade your system." |
echo "I'm now ready to upgrade your system." |
97 |
echo "Press any key to continue or [CTRL-C] to abort ..." |
echo "Press any key to continue or [CTRL-C] to abort ..." |
98 |
echo |
echo |
99 |
read |
read |
100 |
|
|
101 |
#now run the update |
# now run the update |
102 |
for package in ${UPGRADE_LIST} |
for package in ${UPGRADE_LIST} |
103 |
do |
do |
104 |
/sbin/mage install ${package} || exit 1 |
if [[ ${SRCINSTALL} = false ]] |
105 |
|
then |
106 |
|
/sbin/mage install ${package} || exit 1 |
107 |
|
else |
108 |
|
/sbin/mage srcinstall ${package} || exit 1 |
109 |
|
fi |
110 |
|
|
111 |
if [[ ${DEBUG} = true ]] |
if [[ ${DEBUG} = true ]] |
112 |
then |
then |
113 |
echo "Installation of ${package} completed." |
echo "Installation of ${package} completed." |
121 |
else |
else |
122 |
MAGE_UNINSTALL_TIMEOUT=0 /sbin/mage uninstall ${package} || exit 1 |
MAGE_UNINSTALL_TIMEOUT=0 /sbin/mage uninstall ${package} || exit 1 |
123 |
fi |
fi |
124 |
|
|
125 |
if [[ ${DEBUG} = true ]] |
if [[ ${DEBUG} = true ]] |
126 |
then |
then |
127 |
echo "Uninstallation of ${package} completed." |
echo "Uninstallation of ${package} completed." |
128 |
echo "Press any key to continue ..." |
echo "Press any key to continue ..." |
129 |
read |
read |
130 |
fi |
fi |
131 |
|
|
132 |
#resource /etc/profile |
# resource /etc/profile |
133 |
source /etc/profile |
source /etc/profile |
134 |
done |
done |
135 |
|
|
136 |
echo "The system upgrade is now complete." |
echo "The system upgrade is now complete." |
137 |
echo -n "Would you like to see the list of ignored packages ? [ y/n ] " |
|
138 |
read answer |
if [ -n "${PLEASE_VALIDATE}" ] |
|
if [[ ${answer} = y ]] |
|
139 |
then |
then |
140 |
echo |
echo -n "Would you like to see the list of ignored packages ? [ y/n ] " |
141 |
for i in ${PLEASE_VALIDATE} |
read answer |
142 |
do |
if [[ ${answer} = y ]] |
143 |
echo "avoided: ${i}" |
then |
144 |
done |
echo |
145 |
|
for i in ${PLEASE_VALIDATE} |
146 |
|
do |
147 |
|
echo "avoided: ${i}" |
148 |
|
done |
149 |
|
fi |
150 |
fi |
fi |
151 |
|
|
152 |
echo |
echo |