Contents of /trunk/pkgtools/svn-cleanup-pkg-tree.sh
Parent Directory | Revision Log
Revision 2029 -
(show annotations)
(download)
(as text)
Tue Jan 22 14:34:56 2013 UTC (11 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 5628 byte(s)
Tue Jan 22 14:34:56 2013 UTC (11 years, 4 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 |