Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2029 by niro, Tue Jan 22 14:34:56 2013 UTC revision 2107 by niro, Mon May 13 11:36:10 2013 UTC
# Line 6  export LC_ALL=C Line 6  export LC_ALL=C
6  MY_REPOS=( "branches/R11-stable" "trunk" )  MY_REPOS=( "branches/R11-stable" "trunk" )
7  MY_ARCHES=( "x86_64" "i686" )  MY_ARCHES=( "x86_64" "i686" )
8  MY_DISTRO_PKG_BASE="/var/www/htdocs/magellan/R11"  MY_DISTRO_PKG_BASE="/var/www/htdocs/magellan/R11"
9    MY_DISTRO_HTTP_PKG_BASE="http://magellan-linux.de/magellan/R11"
10    MY_SSHLOGIN_BASE="tjoke@magellan-linux.de"
11  MY_MAGE_FEATURES=( "pkgdistrotag" )  MY_MAGE_FEATURES=( "pkgdistrotag" )
12  MY_MAGE_FEATURES_i686=( "srcpkgbuild" )  MY_MAGE_FEATURES_i686=( "srcpkgbuild" )
13    
14    # decide wether to use http method or not
15    USE_HTTP=0
16    if [[ $1 = --http ]]
17    then
18     USE_HTTP=1
19     shift
20    fi
21    
22  MY_SVN_BASE="$1"  MY_SVN_BASE="$1"
23  if [[ -z ${MY_SVN_BASE} ]]  if [[ -z ${MY_SVN_BASE} ]]
24  then  then
# Line 34  load_arch_values() Line 44  load_arch_values()
44   export CHOST="${arch}-pc-linux-gnu"   export CHOST="${arch}-pc-linux-gnu"
45   export PACKAGES_SERVER_PATH="packages/${arch}"   export PACKAGES_SERVER_PATH="packages/${arch}"
46   export PKGDIR="${MY_DISTRO_PKG_BASE}/packages/${arch}/"   export PKGDIR="${MY_DISTRO_PKG_BASE}/packages/${arch}/"
47     export HTTP_PKGDIR="${MY_DISTRO_HTTP_PKG_BASE}/packages/${arch}/"
48   export SRCPKGDIR="${MY_DISTRO_PKG_BASE}/packages/src/"   export SRCPKGDIR="${MY_DISTRO_PKG_BASE}/packages/src/"
49     export HTTP_SRCPKGDIR="${MY_DISTRO_HTTP_PKG_BASE}/packages/src/"
50  }  }
51    
52  # generate_pkg_file_list REPO  # generate_pkg_file_list REPO
# Line 43  generate_pkg_file_list() Line 55  generate_pkg_file_list()
55   local repo="$1"   local repo="$1"
56   local smage   local smage
57   local arch   local arch
58     local _findlist
59   export SMAGESCRIPTSDIR="${repo}"   export SMAGESCRIPTSDIR="${repo}"
 # echo "DEBUG: repo='${repo}'"  
60    
61   for smage in $(find ${repo} -name \*.${SMAGESUFFIX} | sort -u)   # speed up things - include distribution file here
62     source ${SMAGESCRIPTSDIR}/distribution
63    
64     _findlist=$(find ${repo} -name \*.${SMAGESUFFIX} | sort -u)
65     for arch in ${MY_ARCHES[*]}
66   do   do
67   echo "Processing ${smage}"   load_arch_values ${arch}
68   for arch in ${MY_ARCHES[*]}   load_mage_features
69    
70     for smage in ${_findlist}
71   do   do
72   load_arch_values ${arch}   echo "Processing ${smage}"
73   load_mage_features  
74  # echo   #smagesource ${smage} &> /dev/null || die
75  # mprintfeatures   # speed up things
76  # echo   FVERBOSE=off
77   smagesource ${smage} &> /dev/null || die   source "${smage}" &> /dev/null || die
78    
79   # honor split-packages   # honor split-packages
80   if [[ -n ${SPLIT_PACKAGES} ]]   if [[ -n ${SPLIT_PACKAGES} ]]
# Line 131  check_pkglist() Line 148  check_pkglist()
148    
149   for i in $(eval echo "\${${var}[*]}")   for i in $(eval echo "\${${var}[*]}")
150   do   do
151   [[ ${i} = ${pkg} ]] && return 0   if [[ ${i} = ${pkg} ]]
152     then
153     # delete found entry from variable
154     eval $(echo "${var}=(\${${var}[*]//${i}})")
155     return 0
156     fi
157   done   done
158    
159   return 1   return 1
# Line 139  check_pkglist() Line 161  check_pkglist()
161    
162  # checkout svn sources for mage and smage repos  # checkout svn sources for mage and smage repos
163  export SVNROOT="${MY_SVN_ROOT}"  export SVNROOT="${MY_SVN_ROOT}"
164    [[ ! -d ${MY_SVN_BASE} ]] && install -d ${MY_SVN_BASE}
165  for module in magellan-source/trunk/mage ${MY_REPOS[*]}  for module in magellan-source/trunk/mage ${MY_REPOS[*]}
166  do  do
167   case ${module} in   case ${module} in
# Line 152  do Line 175  do
175   else   else
176   ( cd ${MY_SVN_BASE}; svn update ${MY_SVN_OPTS} ${SVNROOT}/${repo} ${codir} )   ( cd ${MY_SVN_BASE}; svn update ${MY_SVN_OPTS} ${SVNROOT}/${repo} ${codir} )
177   fi   fi
178    
179     # exclude deprecated
180     if [ -d ${MY_SVN_BASE}/${codir}/deprecated ]
181     then
182     echo "deleting ${MY_SVN_BASE}/${codir}/deprecated"
183     rm -r ${MY_SVN_BASE}/${codir}/deprecated
184     fi
185  done  done
186    
187  # include functions from fresh mage checkout  # include functions from fresh mage checkout
# Line 177  done Line 207  done
207  #done  #done
208  #echo  #echo
209    
210    # initialize lists
211    if [[ ${USE_HTTP} = 1 ]]
212    then
213     :> ${MY_SVN_BASE}/pkglist
214     :> ${MY_SVN_BASE}/srcpkglist
215    fi
216    
217    # make a copy of the lists
218    CP_PKGLIST=( ${PKGLIST[*]} )
219    CP_SRCPKGLIST=( ${SRCPKGLIST[*]} )
220    # and save them for resume
221    echo "${CP_PKGLIST[*]}" > ${MY_SVN_BASE}/saved_pkglist
222    echo "${CP_SRCPKGLIST[*]}" > ${MY_SVN_BASE}/saved_srcpkglist
223    
224  for arch in ${MY_ARCHES[*]}  for arch in ${MY_ARCHES[*]}
225  do  do
226   load_arch_values "${arch}"   load_arch_values "${arch}"
227   load_mage_features   load_mage_features
228    
229     # make arch copy of the arrays
230     eval $(echo "PKGLIST_${arch}=( ${PKGLIST[*]} )")
231     eval $(echo "SRCPKGLIST_${arch}=( ${SRCPKGLIST[*]} )")
232    
233   if [ ! -d ${PKGDIR}/_deprecated ]   if [ ! -d ${PKGDIR}/_deprecated ]
234   then   then
235   install -d ${PKGDIR}/_deprecated || die "install ${PKGDIR}/${arch}/_deprecated"   install -d ${PKGDIR}/_deprecated || die "install ${PKGDIR}/${arch}/_deprecated"
236   fi   fi
237    
238   for file in $(find ${PKGDIR} -name \*.${PKGSUFFIX} -printf '%f\n' | sort)   if [[ ${USE_HTTP} = 1 ]]
239     then
240     _filelist=$(lynx -dump -listonly ${HTTP_PKGDIR} | grep ".${PKGSUFFIX}" | sed "s:.*${PACKAGES_SERVER_PATH}/\(.*.${PKGSUFFIX}\):\1:")
241     else
242     _filelist=$(find ${PKGDIR} -name \*.${PKGSUFFIX} -printf '%f\n' | sort)
243     fi
244    
245     if [[ ${USE_HTTP} = 1 ]]
246     then
247     echo "install -d ${PKGDIR}/_deprecated" >> ${MY_SVN_BASE}/pkglist
248     fi
249     for file in ${_filelist}
250   do   do
251   if check_pkglist PKGLIST "${file}"   if check_pkglist PKGLIST "${file}"
252   then   then
253   echo -e "${COLGREEN}[k] - ${file}${COLDEFAULT}"   echo -e "${COLGREEN}[k] - ${file}${COLDEFAULT}"
254   else   else
255   echo -e "${COLRED}[d] - ${file}${COLDEFAULT}"   echo -e "${COLRED}[d] - ${file}${COLDEFAULT}"
256   echo mv ${PKGDIR}/${file} ${PKGDIR}/_deprecated || die "move ${PKGDIR}/${file} -> _deprecated"   if [[ ${USE_HTTP} = 1 ]]
257     then
258     echo "mv -v ${PKGDIR}/${file} ${PKGDIR}/_deprecated/ " >> ${MY_SVN_BASE}/pkglist
259     else
260     mv ${PKGDIR}/${file} ${PKGDIR}/_deprecated/ || die "move ${PKGDIR}/${file} -> _deprecated"
261     fi
262   fi   fi
263   done   done
264   if mqueryfeature "srcpkgbuild"   if mqueryfeature "srcpkgbuild"
265   then   then
266   for file in $(find ${SRCPKGDIR} -name \*.${SRCPKGSUFFIX} -printf '%f\n' | sort)   if [[ ${USE_HTTP} = 1 ]]
267     then
268     _filelist=$(lynx -dump -listonly ${HTTP_SRCPKGDIR} | grep ".${SRCPKGSUFFIX}" | sed "s:.*packages/src/\(.*.${SRCPKGSUFFIX}\):\1:")
269     else
270     _filelist=$(find ${SRCPKGDIR} -name \*.${SRCPKGSUFFIX} -printf '%f\n' | sort)
271     fi
272    
273     if [[ ${USE_HTTP} = 1 ]]
274     then
275     echo "install -d ${SRCPKGDIR}/_deprecated" >> ${MY_SVN_BASE}/srcpkglist
276     fi
277     for file in ${_filelist}
278   do   do
279   if check_pkglist SRCPKGLIST "${file}"   if check_pkglist SRCPKGLIST "${file}"
280   then   then
281   echo -e "${COLGREEN}[k] - ${file}${COLDEFAULT}"   echo -e "${COLGREEN}[k] - ${file}${COLDEFAULT}"
282   else   else
283   echo -e "${COLRED}[d] - ${file}${COLDEFAULT}"   echo -e "${COLRED}[d] - ${file}${COLDEFAULT}"
284   echo mv ${SRCPKGDIR}/${file} ${SRCPKGDIR}/_deprecated || die "move ${SRCPKGDIR}/${file} -> _deprecated"   if [[ ${USE_HTTP} = 1 ]]
285     then
286     echo "mv -v ${SRCPKGDIR}/${file} ${SRCPKGDIR}/_deprecated/" >> ${MY_SVN_BASE}/srcpkglist
287     else
288     mv ${SRCPKGDIR}/${file} ${SRCPKGDIR}/_deprecated/ || die "move ${SRCPKGDIR}/${file} -> _deprecated"
289     fi
290   fi   fi
291   done   done
292   fi   fi
293  done  done
294    
295    if [[ ${USE_HTTP} =  777 ]]
296    then
297     for list in pkglist srcpkglist
298     do
299     if [[ -f ${MY_SVN_BASE}/${list} ]]
300     then
301     scp ${MY_SVN_BASE}/${list} ${MY_SSHLOGIN_BASE}:~
302     ssh ${MY_SSHLOGIN_BASE} bash ~/${list}
303     fi
304     done
305    fi

Legend:
Removed from v.2029  
changed lines
  Added in v.2107