Annotation of /trunk/mage/usr/lib/mage/depwanderer.sh
Parent Directory | Revision Log
Revision 24 -
(hide annotations)
(download)
(as text)
Wed Jan 5 05:08:01 2005 UTC (19 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 5010 byte(s)
Wed Jan 5 05:08:01 2005 UTC (19 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 5010 byte(s)
mage-0.3.6-r8 import
1 | niro | 24 | #!/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 | * |