Annotation of /trunk/mage/usr/lib/mage/magemanager.sh
Parent Directory | Revision Log
Revision 33 -
(hide annotations)
(download)
(as text)
Thu Jan 6 02:57:12 2005 UTC (19 years, 5 months ago) by niro
File MIME type: application/x-sh
File size: 5675 byte(s)
Thu Jan 6 02:57:12 2005 UTC (19 years, 5 months ago) by niro
File MIME type: application/x-sh
File size: 5675 byte(s)
fixed version tags
1 | niro | 24 | #!/bin/bash |
2 | |||
3 | #mage manager | ||
4 | niro | 33 | # version: 0.3.6-r9 |
5 | niro | 24 | |
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 | * |