Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 24 - (show annotations) (download) (as text)
Wed Jan 5 05:08:01 2005 UTC (19 years, 8 months ago) by niro
File MIME type: application/x-sh
File size: 5010 byte(s)
mage-0.3.6-r8 import

1 #!/bin/bash
2
3 #depwanderer
4 # version: 0.3.6-r8
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 else
95 # choose one from virtualdb defaults (virtuals.defaults)
96 REAL_PKGNAME="$(default_virtualname_to_pkgname ${CAT}/${PNAME})"
97 VIRTUAL_NAME="${CAT}/${PNAME}"
98
99 CAT=$(echo ${REAL_PKGNAME}|cut -d / -f1)
100 PNAME=$(echo ${REAL_PKGNAME}|cut -d / -f2)
101
102 # small fix with this buggy mage (<= 0.3.6-r5)
103 # dunno when it's fixed -> maybe mage-0.3.7 !
104 # *must* have a '-1' as version that could be substituded later
105 #PNAME=CAT="$(echo ${REAL_PKGNAME}|cut -d / -f2)-1"
106 fi
107 else
108 #stripped pname if *not* virtual
109 PNAME=$(echo ${DEPNAME%-*}|cut -d / -f2)
110 fi
111
112 for i in ${MAGEDIR}/${CAT}/${PNAME}/*.mage
113 do
114 #we exclude subdirs (for stuff like a md5sum dir)
115 if [ ! -d ${i} ]
116 then
117 check_stable_package ${i}
118 if [ "$?" == "0" ]
119 then
120 HIGHEST_DEPFILE=${i}
121 fi
122
123 #debug
124 if [ "${TODESVAR}" == 1 ]
125 then
126 echo -e ${COLRED}"${DFILE}"${COLDEFAULT}
127 unset TODESVAR
128 fi
129 fi
130 done
131
132 ##check ob schon in ALLDEPS enthalten dann mach weiter
133 local x
134 x=$(echo ${ALLDEPS}|fgrep "${HIGHEST_DEPFILE}")
135 if [ -z "${x}" ]
136 then
137 ### check ob DFILE schon installiert ist ###
138 #if [ ! -d ${INSTALLDB}/$(basename ${HIGHEST_DEPFILE} .mage) ]
139 if [ ! -d ${INSTALLDB}/${CAT}/$(basename ${HIGHEST_DEPFILE} .mage) ]
140 then
141 rumwandern ${HIGHEST_DEPFILE}
142 ALLDEPS="${ALLDEPS} ${HIGHEST_DEPFILE}"
143
144 #mark pkg as virtual if needed
145 # virtual.PKG_NAME
146 if [ "${INSTALL_VIRTUAL}" == "true" ]
147 then
148 install -d ${BUILDDIR}/virtuals
149 echo "DB_VIRTUAL_NAME=${VIRTUAL_NAME}" \
150 > ${BUILDDIR}/virtuals/virtual.$(basename ${HIGHEST_DEPFILE} .mage)
151 echo "DB_PKG_NAME=${REAL_PKGNAME}" \
152 >> ${BUILDDIR}/virtuals/virtual.$(basename ${HIGHEST_DEPFILE} .mage)
153
154 #unset these vars to be safe
155 unset VIRTUAL_NAME REAL_PKGNAME INSTALL_VIRTUAL
156 fi
157 fi
158 fi
159
160 done << EOF
161 $MY_DEPEND
162 EOF
163 return 0
164 }
165
166 ### check ob MAGEFILE schon installiert ist
167 #if [ -d ${INSTALLDB}/$(basename ${MAGEFILE} .mage) ]
168 MY_CAT=$(dirname ${MAGEFILE}|sed -e "s:${MAGEDIR}::g"|cut -d / -f2)
169 if [ -d ${INSTALLDB}/${MY_CAT}/$(basename ${MAGEFILE} .mage) ]
170 then
171 exit 3
172 fi
173
174 if [ "${METHOD}" == "pretend" -o "${METHOD}" == "srcpretend" ]
175 then
176 echo -en "Calculating Dependencies ... "
177 fi
178
179 #get dependencies of package
180 rumwandern ${MAGEFILE}
181
182 if [ "${METHOD}" == "pretend" -o "${METHOD}" == "srcpretend" ]
183 then
184 echo "done"
185 fi
186
187 ##anhängen des zu installierenden files selber
188 ALLDEPS="${ALLDEPS} ${MAGEFILE}"
189
190
191 ##ausgabe pretend
192 if [ "${METHOD}" == "pretend" -o "${METHOD}" == "srcpretend" ]
193 then
194 ####test ausgabe
195 declare -i x=0
196 for i in ${ALLDEPS}
197 do
198 x=$x+1
199 echo -en "\t${COLBLUE}["
200 if [ ${x} -le 9 ]
201 then
202 echo -en "0"
203 fi
204 CATEGORIE=$(dirname ${i}|sed -e "s:${MAGEDIR}::g"|cut -d / -f2)
205 APPNAME=$(basename ${i} .mage)
206 echo -e "${x}] ${COLGREEN}${CATEGORIE}/${APPNAME}"${COLDEFAULT}
207 unset CATEGORIE APPNAME
208 done
209
210 #delete ${BUILDDIR}/virtuals if exists as not needed by [src]pretend
211 if [ -d ${BUILDDIR}/virtuals ]
212 then
213 rm -rf ${BUILDDIR}/virtuals
214 fi
215 fi
216
217 ##return ausgabe install
218 if [ "$1" == "install" -o "$1" == "srcinstall" ]
219 then
220 echo ${ALLDEPS}
221 fi

Properties

Name Value
svn:executable *