Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 60 - (show annotations) (download) (as text)
Tue Feb 15 22:59:14 2005 UTC (19 years, 2 months ago) by niro
File MIME type: application/x-sh
File size: 5314 byte(s)
rev bump to 0.3.6-r13

1 #!/bin/bash
2
3 #depwanderer
4 # version: 0.3.6-r13
5
6 #DEPEND WANDERER
7
8 MAGEFILE=$2
9 ALLDEPS=""
10 METHOD=$1
11
12
13 source /etc/mage.rc
14 source /etc/init.d/functions
15 source /usr/lib/mage/mage3.functions.sh
16
17 #virtualdb locations
18 VIRTUALDB_DEFAULTS=/etc/mage-profile/virtuals.defaults
19 VIRTUALDB_FILE=${INSTALLDB}/virtuals
20
21
22 #####################
23 ## rumwandern /path/to/mage/file/.mage
24 rumwandern(){
25
26 unset DEPEND
27 unset SDEPEND
28 unset MY_DEPEND
29
30 local DFILE
31 local SYM
32 local DEPNAME
33 local HIGHEST_DEPFILE
34 local MY_DEPEND
35 local REAL_PGKNAME
36 local VIRTUAL_NAME
37 local INSTALL_VIRTUAL
38
39 DFILE=$1
40
41 source ${DFILE}
42 MY_DEPEND="${DEPEND}"
43
44 #for srcinstall & srcdepend only; SDEPEND also needed
45 if [ "${METHOD}" == "srcinstall" -o "${METHOD}" == "srcpretend" ]
46 then
47 #only if SDEPEND is not zero
48 if [ -n "${SDEPEND}" ]
49 then
50 #crlf is substantly needed !!
51 if [ -n "${MY_DEPEND}" ]
52 then
53 MY_DEPEND="${MY_DEPEND}
54 ${SDEPEND}"
55 else
56 MY_DEPEND="${SDEPEND}"
57 fi
58 fi
59 fi
60
61 unset DEPEND
62 unset SDEPEND
63
64 if [ -z "${MY_DEPEND}" ]
65 then
66 return 1
67 fi
68
69 while read SYM DEPNAME
70 do
71 CAT=$(echo ${DEPNAME}|cut -d / -f1)
72 #PNAME=$(echo ${DEPNAME%-*}|cut -d / -f2)
73 #echo "DEBUG CAT=${CAT}"
74 #echo "DEBUG PNAME=${PNAME}"
75 #echo "DEBUG DEPNAME=${DEPNAME}"
76
77 # check if virtual pkg;
78 # if true set $CAT and PNAME to the *REAL* PKGNAME and CATEGORIE
79 if [ "${CAT}" == "virtual" ]
80 then
81 INSTALL_VIRTUAL=true
82 PNAME=$(echo ${DEPNAME}|cut -d / -f2)
83
84 #first check if virtual is already installed
85 if virtuals_read ${CAT}/${PNAME} showpkgs &> /dev/null
86 then
87 #virtual is installed; take pkg name from virtualdb
88 # REAL_PKGNAME="$(virtuals_read ${CAT}/${PNAME} showpkgs)"
89 # VIRTUAL_NAME="${CAT}/${PNAME}"
90 #
91 # CAT=$(echo ${REAL_PKGNAME}|cut -d / -f1)
92 # PNAME=$(echo ${REAL_PKGNAME}|cut -d / -f2)
93
94 for vpkg in $(virtuals_read ${CAT}/${PNAME} showpkgs)
95 do
96 #virtual is installed; take pkg name from virtualdb
97 REAL_PKGNAME="${vpkg}"
98 VIRTUAL_NAME="${CAT}/${PNAME}"
99
100 CAT=$(echo ${REAL_PKGNAME}|cut -d / -f1)
101 PNAME=$(echo ${REAL_PKGNAME}|cut -d / -f2)
102 done
103
104 else
105 # choose one from virtualdb defaults (virtuals.defaults)
106 REAL_PKGNAME="$(default_virtualname_to_pkgname ${CAT}/${PNAME})"
107 VIRTUAL_NAME="${CAT}/${PNAME}"
108
109 CAT=$(echo ${REAL_PKGNAME}|cut -d / -f1)
110 PNAME=$(echo ${REAL_PKGNAME}|cut -d / -f2)
111
112 # small fix with this buggy mage (<= 0.3.6-r5)
113 # dunno when it's fixed -> maybe mage-0.3.7 !
114 # *must* have a '-1' as version that could be substituded later
115 #PNAME=CAT="$(echo ${REAL_PKGNAME}|cut -d / -f2)-1"
116 fi
117 else
118 #stripped pname if *not* virtual
119 PNAME=$(echo ${DEPNAME%-*}|cut -d / -f2)
120 fi
121
122 for i in ${MAGEDIR}/${CAT}/${PNAME}/*.mage
123 do
124 #we exclude subdirs (for stuff like a md5sum dir)
125 if [ ! -d ${i} ]
126 then
127 check_stable_package ${i}
128 if [ "$?" == "0" ]
129 then
130 HIGHEST_DEPFILE=${i}
131 fi
132
133 #debug
134 if [ "${TODESVAR}" == 1 ]
135 then
136 echo -e ${COLRED}"${DFILE}"${COLDEFAULT}
137 unset TODESVAR
138 fi
139 fi
140 done
141
142 ##check ob schon in ALLDEPS enthalten dann mach weiter
143 local x
144 x=$(echo ${ALLDEPS}|fgrep "${HIGHEST_DEPFILE}")
145 if [ -z "${x}" ]
146 then
147 ### check ob DFILE schon installiert ist ###
148 #if [ ! -d ${INSTALLDB}/$(basename ${HIGHEST_DEPFILE} .mage) ]
149 if [ ! -d ${INSTALLDB}/${CAT}/$(basename ${HIGHEST_DEPFILE} .mage) ]
150 then
151 rumwandern ${HIGHEST_DEPFILE}
152 ALLDEPS="${ALLDEPS} ${HIGHEST_DEPFILE}"
153
154 #mark pkg as virtual if needed
155 # virtual.PKG_NAME
156 if [ "${INSTALL_VIRTUAL}" == "true" ]
157 then
158 install -d ${BUILDDIR}/virtuals
159 echo "DB_VIRTUAL_NAME=${VIRTUAL_NAME}" \
160 > ${BUILDDIR}/virtuals/virtual.$(basename ${HIGHEST_DEPFILE} .mage)
161 echo "DB_PKG_NAME=${REAL_PKGNAME}" \
162 >> ${BUILDDIR}/virtuals/virtual.$(basename ${HIGHEST_DEPFILE} .mage)
163
164 #unset these vars to be safe
165 unset VIRTUAL_NAME REAL_PKGNAME INSTALL_VIRTUAL
166 fi
167 fi
168 fi
169
170 done << EOF
171 $MY_DEPEND
172 EOF
173 return 0
174 }
175
176 ### check ob MAGEFILE schon installiert ist
177 #if [ -d ${INSTALLDB}/$(basename ${MAGEFILE} .mage) ]
178 MY_CAT=$(dirname ${MAGEFILE}|sed -e "s:${MAGEDIR}::g"|cut -d / -f2)
179 if [ -d ${INSTALLDB}/${MY_CAT}/$(basename ${MAGEFILE} .mage) ]
180 then
181 exit 3
182 fi
183
184 if [ "${METHOD}" == "pretend" -o "${METHOD}" == "srcpretend" ]
185 then
186 echo -en "Calculating Dependencies ... "
187 fi
188
189 #get dependencies of package
190 rumwandern ${MAGEFILE}
191
192 if [ "${METHOD}" == "pretend" -o "${METHOD}" == "srcpretend" ]
193 then
194 echo "done"
195 fi
196
197 ##anhängen des zu installierenden files selber
198 ALLDEPS="${ALLDEPS} ${MAGEFILE}"
199
200
201 ##ausgabe pretend
202 if [ "${METHOD}" == "pretend" -o "${METHOD}" == "srcpretend" ]
203 then
204 ####test ausgabe
205 declare -i x=0
206 for i in ${ALLDEPS}
207 do
208 x=$x+1
209 echo -en "\t${COLBLUE}["
210 if [ ${x} -le 9 ]
211 then
212 echo -en "0"
213 fi
214 CATEGORIE=$(dirname ${i}|sed -e "s:${MAGEDIR}::g"|cut -d / -f2)
215 APPNAME=$(basename ${i} .mage)
216 echo -e "${x}] ${COLGREEN}${CATEGORIE}/${APPNAME}"${COLDEFAULT}
217 unset CATEGORIE APPNAME
218 done
219
220 #delete ${BUILDDIR}/virtuals if exists as not needed by [src]pretend
221 if [ -d ${BUILDDIR}/virtuals ]
222 then
223 rm -rf ${BUILDDIR}/virtuals
224 fi
225 fi
226
227 ##return ausgabe install
228 if [ "$1" == "install" -o "$1" == "srcinstall" ]
229 then
230 echo ${ALLDEPS}
231 fi

Properties

Name Value
svn:executable *