Contents of /trunk/mage/usr/lib/mage/magemanager.sh
Parent Directory | 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)
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 | * |