Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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

1 niro 24 #!/bin/bash
2    
3     #depwanderer
4 niro 60 # version: 0.3.6-r13
5 niro 24
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 niro 29 # 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 niro 24 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 *