Magellan Linux

Contents of /trunk/mage/usr/lib/mage/magemanager.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 33 - (show annotations) (download) (as text)
Thu Jan 6 02:57:12 2005 UTC (19 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 5675 byte(s)
fixed version tags

1 #!/bin/bash
2
3 #mage manager
4 # version: 0.3.6-r9
5
6 source /etc/mage.rc
7 TMPDIR=/tmp/magemanager
8 TMPFILE=${TMPDIR}/categories
9 TMPFILE2=${TMPDIR}/programs
10 TMPFILE3=${TMPDIR}/uninstalldialog
11 TOINSTALLDIR=${TMPDIR}/install
12 TOUNINSTALLDIR=${TMPDIR}/uninstall
13
14
15 #clear up && init
16 if [ -e "${TMPDIR}" ]
17 then
18 rm -rf ${TMPDIR}
19 fi
20
21 install -d ${TOINSTALLDIR}
22 install -d ${TOUNINSTALLDIR}
23
24
25 create_dialog_categories() {
26 #tempfile erstellen für categorie dialog
27 echo -e "dialog \\" > $TMPFILE
28 echo -e "--backtitle \"$TITLE\" \\" >> $TMPFILE
29 echo -e "--cancel-label \"Beenden\" \\" >> $TMPFILE
30 echo -e "--ok-label \"Auswahl\" \\" >> $TMPFILE
31 echo -e "--stdout \\" >> $TMPFILE
32 echo -e "--extra-button \\" >> $TMPFILE
33 echo -e "--extra-label \"Install\" \\" >> $TMPFILE
34 echo -e "--menu \"Bitte Kategorie auswaehlen:\" 14 70 7 \\" >> $TMPFILE
35
36 for i in ${MAGEDIR}/*
37 do
38 if [ -d ${i} ]
39 then
40 echo "$(basename ${i}) \"\" \\" >> $TMPFILE
41 fi
42 done
43
44 echo -e "\n" >> $TMPFILE
45 chmod a+x $TMPFILE
46 }
47
48 create_dialog_programs() {
49 ##temp file erstellen für programme dialog
50 echo -e "dialog \\" > $TMPFILE2
51 echo -e "--backtitle \"$TITLE\" \\" >> $TMPFILE2
52 echo -e "--cancel-label \"Abbrechen\" \\" >> $TMPFILE2
53 #echo -e "--ok-label \"Weiter\" \\" >> $TMPFILE2
54 echo -e "--stdout \\" >> $TMPFILE2
55 #echo -e "--extra-button \\" >> $TMPFILE2
56 #echo -e "--extra-label \"Uninstall\" \\" >> $TMPFILE2
57 echo -e "--checklist \"Bitte Programm auswaehlen:\" 14 70 7 \\" >> $TMPFILE2
58
59 for i in ${MAGEDIR}/${CATEGORIE}/*
60 do
61 if [ -f ${i} ]
62 then
63 #check if installed = 0 (true)
64 if [ "$(check_installed ${i} )" == "0" ]
65 then
66 echo "$(basename ${i}) \"\" "on" \\" >> $TMPFILE2
67 else
68 echo "$(basename ${i}) \"\" "off" \\" >> $TMPFILE2
69 fi
70 fi
71 done
72
73 echo -e "\n" >> $TMPFILE2
74 chmod a+x $TMPFILE2
75 }
76
77 #aufruf: check_installed $@ (bsp check_installed foo-1.0.mage dev-libs/foo-2.0-r1.mage)
78 check_installed(){
79
80 #note 0= true 1=false
81
82 #delete var
83 unset installed
84
85 local installed
86 local searchfile
87 #for i in $@
88 #do
89 #searchfile="$(basename ${i} .mage)"
90 searchfile="$(basename $1 .mage)"
91 if [ -d "${INSTALLDB}/${searchfile}" ]
92 then
93 installed=0
94 else
95 installed=1
96 fi
97 #done
98 #an return ${installed}
99 echo ${installed}
100
101 }
102
103 create_dialog_uninstall() {
104 echo -e "dialog \\" > $TMPFILE3
105 echo -e "--backtitle \"$TITLE\" \\" >> $TMPFILE3
106 echo -e "--cancel-label \"Beenden\" \\" >> $TMPFILE3
107 echo -e "--ok-label \"Uninstall\" \\" >> $TMPFILE3
108 echo -e "--stdout \\" >> $TMPFILE3
109 #echo -e "--extra-button \\" >> $TMPFILE3
110 #echo -e "--extra-label \"Uninstall\" \\" >> $TMPFILE3
111 echo -e "--checklist \"Bitte Programme waehlen:\" 14 70 7 \\" >> $TMPFILE3
112
113 for i in ${INSTALLDB}/*
114 do
115 if [ -d ${i} ]
116 then
117 echo "$(basename ${i}) \"\" "off" \\" >> $TMPFILE3
118 fi
119 done
120
121 echo -e "\n" >> $TMPFILE3
122 chmod a+x $TMPFILE3
123 }
124
125 #aufruf: dialog_install ${magefile}
126 dialog_install() {
127 magefile="$1"
128
129 dialog \
130 --backtitle "$TITLE" \
131 --infobox "Setting up ${magefile} ..." 3 70
132 }
133
134 #aufruf: dialog_uninstall ${magefile}
135 dialog_uninstall() {
136 magefile="$1"
137
138 dialog \
139 --backtitle "$TITLE" \
140 --infobox "Removing ${magefile} ..." 3 70
141 }
142
143 dialog_update() {
144 dialog \
145 --backtitle "$TITLE" \
146 --infobox "Updating Mage Tree from ${RSYNC} ..." 3 70
147 }
148
149 dialog_clean() {
150 dialog \
151 --backtitle "$TITLE" \
152 --infobox "Cleaning up ..." 3 70
153 }
154
155 dialog_choose_what() {
156 dialog \
157 --stdout \
158 --backtitle "$TITLE" \
159 --cancel-label "Beenden" \
160 --menu "What do you want todo today ?" 12 70 4 \
161 "install" "Installiert Programme" \
162 "uninstall" "Deinstalliert Programme" \
163 "update" "Aktualisiert den Mage-Tree" \
164 "clean" "Löscht heruntergeladene Packete"
165 }
166
167 ################## Mainpart begins here ################################
168
169 TODO="$(dialog_choose_what)"
170
171 if [ "${TODO}" == "install" ]
172 then
173
174 RETCAT=-1
175
176 while [ $RETCAT -ne 1 ]
177 do
178 create_dialog_categories
179 CATEGORIE="`$TMPFILE`"
180 RETCAT="$?"
181
182 if [ "${RETCAT}" == "0" ]
183 then
184 create_dialog_programs
185 PROGRAM="`$TMPFILE2`"
186
187 RETPROG="$?"
188 if [ "$RETPROG" == "0" ]
189 then
190 echo "$PROGRAM" > ${TOINSTALLDIR}/${CATEGORIE}
191 fi
192 fi
193
194 #if [ "$RETPROG" == "0" ]
195 #then
196 # echo "$PROGRAM" > ${TOINSTALLDIR}/${CATEGORIE}
197 #fi
198
199 #debug
200 #echo "${CATEGORIE}/${PROGRAM}"
201
202
203 ##run install
204 if [ "$RETCAT" == "3" ]
205 then
206 for cat in ${TOINSTALLDIR}/*
207 do
208 for prog in $(cat ${cat})
209 do
210 ### cat hat full path -> basename; inhalt von prog hat klammern -> sed
211 #echo "$(basename ${cat})/$(echo ${prog}|sed -e 's:\"::g')"
212 magefile=$(basename ${cat})/$(echo ${prog}|sed -e 's:\"::g')
213 ( mage install $magefile &> /dev/null ) | dialog_install $magefile
214 done
215 done
216
217 #force an exit
218 #RETCAT=1
219
220 #unset variables and delete tmpfiles
221 CATEGORIE=""
222 PROGRAM=""
223 for i in ${TOINSTALLDIR}/*
224 do
225 rm -f ${i}
226 done
227 fi
228 done
229
230 fi
231
232 if [ "${TODO}" == "uninstall" ]
233 then
234 create_dialog_uninstall
235 UNINSTALL="`$TMPFILE3`"
236 RETUNINST="$?"
237
238 echo "${UNINSTALL}" > ${TOUNINSTALLDIR}/uninstall
239
240 if [ "$RETUNINST" == "0" ]
241 then
242 for i in $(cat ${TOUNINSTALLDIR}/uninstall)
243 do
244 magefile=$(echo ${i}|sed -e 's:\"::g')
245 SELECTED="$(find ${MAGEDIR} -name ${magefile}*)"
246 CATEGORIE=$(dirname ${SELECTED#${MAGEDIR}/*})
247 PROGRAM="$(basename ${SELECTED})"
248 magefile=${CATEGORIE}/${PROGRAM}
249 ( mage uninstall $magefile &> /dev/null ) | dialog_uninstall $magefile
250 unset magefile
251 unset PROGRAM
252 unset CATEGORIE
253 unset SELECTED
254 done
255 fi
256 #dialog_choose_what
257 fi
258
259 if [ "${TODO}" == "update" ]
260 then
261 ( mage update &> /dev/null ) | dialog_update
262 #dialog_choose_what
263 fi
264
265 if [ "${TODO}" == "clean" ]
266 then
267 ( mage clean &> /dev/null ) | dialog_clean
268 #dialog_choose_what
269 fi

Properties

Name Value
svn:executable *