--- trunk/pkgtools/svn-cleanup-pkg-tree.sh 2013/01/22 14:34:56 2029 +++ trunk/pkgtools/svn-cleanup-pkg-tree.sh 2013/05/13 11:36:10 2107 @@ -6,9 +6,19 @@ MY_REPOS=( "branches/R11-stable" "trunk" ) MY_ARCHES=( "x86_64" "i686" ) MY_DISTRO_PKG_BASE="/var/www/htdocs/magellan/R11" +MY_DISTRO_HTTP_PKG_BASE="http://magellan-linux.de/magellan/R11" +MY_SSHLOGIN_BASE="tjoke@magellan-linux.de" MY_MAGE_FEATURES=( "pkgdistrotag" ) MY_MAGE_FEATURES_i686=( "srcpkgbuild" ) +# decide wether to use http method or not +USE_HTTP=0 +if [[ $1 = --http ]] +then + USE_HTTP=1 + shift +fi + MY_SVN_BASE="$1" if [[ -z ${MY_SVN_BASE} ]] then @@ -34,7 +44,9 @@ export CHOST="${arch}-pc-linux-gnu" export PACKAGES_SERVER_PATH="packages/${arch}" export PKGDIR="${MY_DISTRO_PKG_BASE}/packages/${arch}/" + export HTTP_PKGDIR="${MY_DISTRO_HTTP_PKG_BASE}/packages/${arch}/" export SRCPKGDIR="${MY_DISTRO_PKG_BASE}/packages/src/" + export HTTP_SRCPKGDIR="${MY_DISTRO_HTTP_PKG_BASE}/packages/src/" } # generate_pkg_file_list REPO @@ -43,21 +55,26 @@ local repo="$1" local smage local arch - + local _findlist export SMAGESCRIPTSDIR="${repo}" -# echo "DEBUG: repo='${repo}'" - for smage in $(find ${repo} -name \*.${SMAGESUFFIX} | sort -u) + # speed up things - include distribution file here + source ${SMAGESCRIPTSDIR}/distribution + + _findlist=$(find ${repo} -name \*.${SMAGESUFFIX} | sort -u) + for arch in ${MY_ARCHES[*]} do - echo "Processing ${smage}" - for arch in ${MY_ARCHES[*]} + load_arch_values ${arch} + load_mage_features + + for smage in ${_findlist} do - load_arch_values ${arch} - load_mage_features -# echo -# mprintfeatures -# echo - smagesource ${smage} &> /dev/null || die + echo "Processing ${smage}" + + #smagesource ${smage} &> /dev/null || die + # speed up things + FVERBOSE=off + source "${smage}" &> /dev/null || die # honor split-packages if [[ -n ${SPLIT_PACKAGES} ]] @@ -131,7 +148,12 @@ for i in $(eval echo "\${${var}[*]}") do - [[ ${i} = ${pkg} ]] && return 0 + if [[ ${i} = ${pkg} ]] + then + # delete found entry from variable + eval $(echo "${var}=(\${${var}[*]//${i}})") + return 0 + fi done return 1 @@ -139,6 +161,7 @@ # checkout svn sources for mage and smage repos export SVNROOT="${MY_SVN_ROOT}" +[[ ! -d ${MY_SVN_BASE} ]] && install -d ${MY_SVN_BASE} for module in magellan-source/trunk/mage ${MY_REPOS[*]} do case ${module} in @@ -152,6 +175,13 @@ else ( cd ${MY_SVN_BASE}; svn update ${MY_SVN_OPTS} ${SVNROOT}/${repo} ${codir} ) fi + + # exclude deprecated + if [ -d ${MY_SVN_BASE}/${codir}/deprecated ] + then + echo "deleting ${MY_SVN_BASE}/${codir}/deprecated" + rm -r ${MY_SVN_BASE}/${codir}/deprecated + fi done # include functions from fresh mage checkout @@ -177,37 +207,99 @@ #done #echo +# initialize lists +if [[ ${USE_HTTP} = 1 ]] +then + :> ${MY_SVN_BASE}/pkglist + :> ${MY_SVN_BASE}/srcpkglist +fi + +# make a copy of the lists +CP_PKGLIST=( ${PKGLIST[*]} ) +CP_SRCPKGLIST=( ${SRCPKGLIST[*]} ) +# and save them for resume +echo "${CP_PKGLIST[*]}" > ${MY_SVN_BASE}/saved_pkglist +echo "${CP_SRCPKGLIST[*]}" > ${MY_SVN_BASE}/saved_srcpkglist + for arch in ${MY_ARCHES[*]} do load_arch_values "${arch}" load_mage_features + # make arch copy of the arrays + eval $(echo "PKGLIST_${arch}=( ${PKGLIST[*]} )") + eval $(echo "SRCPKGLIST_${arch}=( ${SRCPKGLIST[*]} )") + if [ ! -d ${PKGDIR}/_deprecated ] then install -d ${PKGDIR}/_deprecated || die "install ${PKGDIR}/${arch}/_deprecated" fi - for file in $(find ${PKGDIR} -name \*.${PKGSUFFIX} -printf '%f\n' | sort) + if [[ ${USE_HTTP} = 1 ]] + then + _filelist=$(lynx -dump -listonly ${HTTP_PKGDIR} | grep ".${PKGSUFFIX}" | sed "s:.*${PACKAGES_SERVER_PATH}/\(.*.${PKGSUFFIX}\):\1:") + else + _filelist=$(find ${PKGDIR} -name \*.${PKGSUFFIX} -printf '%f\n' | sort) + fi + + if [[ ${USE_HTTP} = 1 ]] + then + echo "install -d ${PKGDIR}/_deprecated" >> ${MY_SVN_BASE}/pkglist + fi + for file in ${_filelist} do if check_pkglist PKGLIST "${file}" then echo -e "${COLGREEN}[k] - ${file}${COLDEFAULT}" else echo -e "${COLRED}[d] - ${file}${COLDEFAULT}" - echo mv ${PKGDIR}/${file} ${PKGDIR}/_deprecated || die "move ${PKGDIR}/${file} -> _deprecated" + if [[ ${USE_HTTP} = 1 ]] + then + echo "mv -v ${PKGDIR}/${file} ${PKGDIR}/_deprecated/ " >> ${MY_SVN_BASE}/pkglist + else + mv ${PKGDIR}/${file} ${PKGDIR}/_deprecated/ || die "move ${PKGDIR}/${file} -> _deprecated" + fi fi done if mqueryfeature "srcpkgbuild" then - for file in $(find ${SRCPKGDIR} -name \*.${SRCPKGSUFFIX} -printf '%f\n' | sort) + if [[ ${USE_HTTP} = 1 ]] + then + _filelist=$(lynx -dump -listonly ${HTTP_SRCPKGDIR} | grep ".${SRCPKGSUFFIX}" | sed "s:.*packages/src/\(.*.${SRCPKGSUFFIX}\):\1:") + else + _filelist=$(find ${SRCPKGDIR} -name \*.${SRCPKGSUFFIX} -printf '%f\n' | sort) + fi + + if [[ ${USE_HTTP} = 1 ]] + then + echo "install -d ${SRCPKGDIR}/_deprecated" >> ${MY_SVN_BASE}/srcpkglist + fi + for file in ${_filelist} do if check_pkglist SRCPKGLIST "${file}" then echo -e "${COLGREEN}[k] - ${file}${COLDEFAULT}" else echo -e "${COLRED}[d] - ${file}${COLDEFAULT}" - echo mv ${SRCPKGDIR}/${file} ${SRCPKGDIR}/_deprecated || die "move ${SRCPKGDIR}/${file} -> _deprecated" + if [[ ${USE_HTTP} = 1 ]] + then + echo "mv -v ${SRCPKGDIR}/${file} ${SRCPKGDIR}/_deprecated/" >> ${MY_SVN_BASE}/srcpkglist + else + mv ${SRCPKGDIR}/${file} ${SRCPKGDIR}/_deprecated/ || die "move ${SRCPKGDIR}/${file} -> _deprecated" + fi fi done fi done + +if [[ ${USE_HTTP} = 777 ]] +then + for list in pkglist srcpkglist + do + if [[ -f ${MY_SVN_BASE}/${list} ]] + then + scp ${MY_SVN_BASE}/${list} ${MY_SSHLOGIN_BASE}:~ + ssh ${MY_SSHLOGIN_BASE} bash ~/${list} + fi + done +fi