Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2029 - (hide 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 niro 2029 #!/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