1 |
#!/bin/bash |
#!/bin/bash |
2 |
|
|
3 |
# mage upgrade |
# mage upgrade |
4 |
# version: 0.3.6-r12 |
# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mageupgrade.sh,v 1.8 2005-06-01 15:50:56 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 |
52 |
if [[ $(basename ${HIGHEST_MAGEFILE} .mage) > ${PNAME}-${PVER}-${PBUILD} ]] |
if [[ $(basename ${HIGHEST_MAGEFILE} .mage) > ${PNAME}-${PVER}-${PBUILD} ]] |
53 |
then |
then |
54 |
UPGRADE_LIST="${UPGRADE_LIST} ${PNAME}" |
UPGRADE_LIST="${UPGRADE_LIST} ${PNAME}" |
55 |
|
SHOW_LIST="${SHOW_LIST}:${PCAT}/${PNAME},[${PVER}-${PBUILD} -> $(basename ${HIGHEST_MAGEFILE#${HIGHEST_MAGEFILE%-*-*}-} .mage)]" |
56 |
else |
else |
57 |
# 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 |
58 |
if [[ $(basename ${HIGHEST_MAGEFILE} .mage) != ${PNAME}-${PVER}-${PBUILD} ]] |
if [[ $(basename ${HIGHEST_MAGEFILE} .mage) != ${PNAME}-${PVER}-${PBUILD} ]] |
77 |
|
|
78 |
unset package directory |
unset package directory |
79 |
|
|
80 |
|
# show the list |
81 |
|
echo |
82 |
|
echo "Packages selected for upgrade:" |
83 |
|
OLDIFS="${IFS}" |
84 |
|
IFS=: |
85 |
|
for package in ${SHOW_LIST} |
86 |
|
do |
87 |
|
# nice output :) |
88 |
|
echo -en \\033[10G |
89 |
|
echo -en ${COLGREEN}"$(echo ${package} | cut -d',' -f1)"${COLDEFAULT} |
90 |
|
echo -en \\033[40G |
91 |
|
echo -e ${COLBLUE}"$(echo ${package} | cut -d',' -f2)"${COLDEFAULT} |
92 |
|
done |
93 |
|
IFS="${OLDIFS}" |
94 |
|
|
95 |
|
|
96 |
echo |
echo |
97 |
echo "I'm now ready to upgrade your system." |
echo "I'm now ready to upgrade your system." |
98 |
echo "Press any key to continue or [CTRL-C] to abort ..." |
echo "Press any key to continue or [CTRL-C] to abort ..." |
102 |
#now run the update |
#now run the update |
103 |
for package in ${UPGRADE_LIST} |
for package in ${UPGRADE_LIST} |
104 |
do |
do |
105 |
/sbin/mage install ${package} || exit 1 |
if [[ ${SRCINSTALL} = false ]] |
106 |
|
then |
107 |
|
/sbin/mage install ${package} || exit 1 |
108 |
|
else |
109 |
|
/sbin/mage srcinstall ${package} || exit 1 |
110 |
|
fi |
111 |
|
|
112 |
if [[ ${DEBUG} = true ]] |
if [[ ${DEBUG} = true ]] |
113 |
then |
then |
114 |
echo "Installation of ${package} completed." |
echo "Installation of ${package} completed." |
135 |
done |
done |
136 |
|
|
137 |
echo "The system upgrade is now complete." |
echo "The system upgrade is now complete." |
138 |
echo -n "Would you like to see the list of ignored packages ? [ y/n ] " |
|
139 |
read answer |
if [ -n "${PLEASE_VALIDATE}" ] |
|
if [[ ${answer} = y ]] |
|
140 |
then |
then |
141 |
echo |
echo -n "Would you like to see the list of ignored packages ? [ y/n ] " |
142 |
for i in ${PLEASE_VALIDATE} |
read answer |
143 |
do |
if [[ ${answer} = y ]] |
144 |
echo "avoided: ${i}" |
then |
145 |
done |
echo |
146 |
|
for i in ${PLEASE_VALIDATE} |
147 |
|
do |
148 |
|
echo "avoided: ${i}" |
149 |
|
done |
150 |
|
fi |
151 |
fi |
fi |
152 |
|
|
153 |
echo |
echo |