Magellan Linux

Contents of /trunk/pkgtools/svn-cleanup-pkg-tree.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2029 - (show annotations) (download) (as text)
Tue Jan 22 14:34:56 2013 UTC (11 years, 3 months ago) by niro
File MIME type: application/x-sh
File size: 5628 byte(s)
-initial release
1 #!/bin/bash
2
3 # export default C locale
4 export LC_ALL=C
5
6 MY_REPOS=( "branches/R11-stable" "trunk" )
7 MY_ARCHES=( "x86_64" "i686" )
8 MY_DISTRO_PKG_BASE="/var/www/htdocs/magellan/R11"
9 MY_MAGE_FEATURES=( "pkgdistrotag" )
10 MY_MAGE_FEATURES_i686=( "srcpkgbuild" )
11
12 MY_SVN_BASE="$1"
13 if [[ -z ${MY_SVN_BASE} ]]
14 then
15 MY_SVN_BASE="$(mktemp -d -t tree-cleanup.XXXXXXXXXX)"
16 #MY_SVN_BASE="/tmp/tree-cleanup.Y7otVmppgA"
17 fi
18 MY_SVN_OPTS=""
19 MY_SVN_ROOT="svn://cvs.magellan-linux.de"
20
21 export PKGLIST=()
22 export SRCPKGLIST=()
23
24 # load_arch_values ARCH
25 load_arch_values()
26 {
27 local arch="$1"
28
29 MAGE_FEATURES=( ${MY_MAGE_FEATURES[*]} )
30 MAGE_FEATURES+=( $(eval echo \${MY_MAGE_FEATURES_${arch}[*]}) )
31 export MAGE_FEATURES
32
33 export ARCH="${arch}"
34 export CHOST="${arch}-pc-linux-gnu"
35 export PACKAGES_SERVER_PATH="packages/${arch}"
36 export PKGDIR="${MY_DISTRO_PKG_BASE}/packages/${arch}/"
37 export SRCPKGDIR="${MY_DISTRO_PKG_BASE}/packages/src/"
38 }
39
40 # generate_pkg_file_list REPO
41 generate_pkg_file_list()
42 {
43 local repo="$1"
44 local smage
45 local arch
46
47 export SMAGESCRIPTSDIR="${repo}"
48 # echo "DEBUG: repo='${repo}'"
49
50 for smage in $(find ${repo} -name \*.${SMAGESUFFIX} | sort -u)
51 do
52 echo "Processing ${smage}"
53 for arch in ${MY_ARCHES[*]}
54 do
55 load_arch_values ${arch}
56 load_mage_features
57 # echo
58 # mprintfeatures
59 # echo
60 smagesource ${smage} &> /dev/null || die
61
62 # honor split-packages
63 if [[ -n ${SPLIT_PACKAGES} ]]
64 then
65 local split_pkg_base="${PNAME}"
66 split_save_variables
67 for subpackage in ${SPLIT_PACKAGES}
68 do
69 export PNAME="${subpackage}"
70 split_info_${subpackage}
71 # fix PCATEGORIE -> PCAT
72 if [[ ! -z ${PCATEGORIE} ]]
73 then
74 PCAT="${PCATEGORIE}"
75 unset PCATEGORIE
76 fi
77
78 # echo "DEBUG: split_package()"
79 # echo "DEBUG: PNAME='${PNAME}'"
80 # echo "DEBUG: PVER='${PVER}'"
81 # echo "DEBUG: PBUILD='${PBUILD}'"
82 # echo "DEBUG: SMAGESCRIPTSDIR='${SMAGESCRIPTSDIR}'"
83 # echo "DEBUG: DISTROTAG='${DISTROTAG}'"
84 # echo "DEBUG: print_distrotag()='$(print_distrotag)'"
85 # echo "DEBUG: ARCH='${ARCH}'"
86 # echo "DEBUG: CHOST='${CHOST}'"
87 # echo "DEBUG: PACKAGES_SERVER_PATH='${PACKAGES_SERVER_PATH}'"
88 # echo "DEBUG: PKGDIR='${PKGDIR}'"
89 # echo "DEBUG: SRCPKGDIR='${SRCPKGDIR}'"
90
91 # echo "DEBUG: ${PNAME}${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}.${PKGSUFFIX}"
92 PKGLIST+=( ${PNAME}${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}.${PKGSUFFIX} )
93
94 # restore smage environment
95 split_restore_variables
96 done
97 # unset all saved smage variables
98 split_unset_variables
99 else
100
101 # echo "DEBUG: PNAME='${PNAME}'"
102 # echo "DEBUG: PVER='${PVER}'"
103 # echo "DEBUG: PBUILD='${PBUILD}'"
104 # echo "DEBUG: SMAGESCRIPTSDIR='${SMAGESCRIPTSDIR}'"
105 # echo "DEBUG: DISTROTAG='${DISTROTAG}'"
106 # echo "DEBUG: print_distrotag()='$(print_distrotag)'"
107 # echo "DEBUG: ARCH='${ARCH}'"
108 # echo "DEBUG: CHOST='${CHOST}'"
109 # echo "DEBUG: PACKAGES_SERVER_PATH='${PACKAGES_SERVER_PATH}'"
110 # echo "DEBUG: PKGDIR='${PKGDIR}'"
111 # echo "DEBUG: SRCPKGDIR='${SRCPKGDIR}'"
112
113 # echo "DEBUG: ${PNAME}${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}.${PKGSUFFIX}"
114 PKGLIST+=( ${PNAME}${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}.${PKGSUFFIX} )
115 fi
116 if mqueryfeature "srcpkgbuild"
117 then
118 # echo "DEBUG: ${PNAME}${target}-${PVER}-${PBUILD}.${SRCPKGSUFFIX}"
119 SRCPKGLIST+=( ${PNAME}${target}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} )
120 fi
121 done
122 done
123 }
124
125 # check_pkglist VARIABLE PKGFILE
126 check_pkglist()
127 {
128 local i
129 local var="$1"
130 local pkg="$2"
131
132 for i in $(eval echo "\${${var}[*]}")
133 do
134 [[ ${i} = ${pkg} ]] && return 0
135 done
136
137 return 1
138 }
139
140 # checkout svn sources for mage and smage repos
141 export SVNROOT="${MY_SVN_ROOT}"
142 for module in magellan-source/trunk/mage ${MY_REPOS[*]}
143 do
144 case ${module} in
145 magellan-source/*) repo="${module}"; codir=mage-src ;;
146 *) repo="smage/${module}"; codir="smage/${module}" ;;
147 esac
148
149 if [ ! -d ${MY_SVN_BASE}/${module}/.svn ]
150 then
151 ( cd ${MY_SVN_BASE}; svn checkout ${MY_SVN_OPTS} ${SVNROOT}/${repo} ${codir} )
152 else
153 ( cd ${MY_SVN_BASE}; svn update ${MY_SVN_OPTS} ${SVNROOT}/${repo} ${codir} )
154 fi
155 done
156
157 # include functions from fresh mage checkout
158 source ${MY_SVN_BASE}/mage-src/usr/lib/mage/mage.rc.global.in
159 export MLIBDIR="${MY_SVN_BASE}/mage-src/usr/lib/mage"
160 source ${MLIBDIR}/mage4.functions.sh
161 source ${MLIBDIR}/smage2.functions.sh
162
163 for repo in ${MY_REPOS[*]}
164 do
165 generate_pkg_file_list "${MY_SVN_BASE}/smage/${repo}"
166 done
167
168 #echo
169 #echo "DEBUG:"
170 #for i in $(echo ${PKGLIST[*]} | sort | uniq)
171 #do
172 # echo "${i}"
173 #done
174 #for i in $(echo "${SRCPKGLIST[*]}" | sort | uniq)
175 #do
176 # echo "${i}"
177 #done
178 #echo
179
180 for arch in ${MY_ARCHES[*]}
181 do
182 load_arch_values "${arch}"
183 load_mage_features
184
185 if [ ! -d ${PKGDIR}/_deprecated ]
186 then
187 install -d ${PKGDIR}/_deprecated || die "install ${PKGDIR}/${arch}/_deprecated"
188 fi
189
190 for file in $(find ${PKGDIR} -name \*.${PKGSUFFIX} -printf '%f\n' | sort)
191 do
192 if check_pkglist PKGLIST "${file}"
193 then
194 echo -e "${COLGREEN}[k] - ${file}${COLDEFAULT}"
195 else
196 echo -e "${COLRED}[d] - ${file}${COLDEFAULT}"
197 echo mv ${PKGDIR}/${file} ${PKGDIR}/_deprecated || die "move ${PKGDIR}/${file} -> _deprecated"
198 fi
199 done
200 if mqueryfeature "srcpkgbuild"
201 then
202 for file in $(find ${SRCPKGDIR} -name \*.${SRCPKGSUFFIX} -printf '%f\n' | sort)
203 do
204 if check_pkglist SRCPKGLIST "${file}"
205 then
206 echo -e "${COLGREEN}[k] - ${file}${COLDEFAULT}"
207 else
208 echo -e "${COLRED}[d] - ${file}${COLDEFAULT}"
209 echo mv ${SRCPKGDIR}/${file} ${SRCPKGDIR}/_deprecated || die "move ${SRCPKGDIR}/${file} -> _deprecated"
210 fi
211 done
212 fi
213 done