Magellan Linux

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

Parent Directory Parent Directory | Revision Log 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)
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 *