summaryrefslogtreecommitdiffstats
path: root/cron-jobs
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2011-03-26 14:13:57 +0100
committerPierre Schmitz <pierre@archlinux.de>2011-03-26 14:13:57 +0100
commitfc6a6ab07bde03c7f20d5a4ed971f8e699ee9b20 (patch)
tree96acb057f856dd5ecbbb719ee8e6d2276d15683b /cron-jobs
parent575ba47d34870f8d7e83bc05f274f40a2d52d8fe (diff)
downloaddbscripts-fc6a6ab07bde03c7f20d5a4ed971f8e699ee9b20.tar.gz
dbscripts-fc6a6ab07bde03c7f20d5a4ed971f8e699ee9b20.tar.xz
Use repo-add to create the files database for each repo20110326
Diffstat (limited to 'cron-jobs')
-rwxr-xr-xcron-jobs/create-filelists101
1 files changed, 0 insertions, 101 deletions
diff --git a/cron-jobs/create-filelists b/cron-jobs/create-filelists
deleted file mode 100755
index 8bcfc0b..0000000
--- a/cron-jobs/create-filelists
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/bin/bash
-
-. "$(dirname $0)/../db-functions"
-. "$(dirname $0)/../config"
-
-script_lock
-
-for repo in ${PKGREPOS[@]}; do
- for arch in ${ARCHES[@]}; do
- repo_lock ${repo} ${arch} || exit 1
- done
-done
-
-#adjust the nice level to run at a lower priority
-renice +10 -p $$ > /dev/null
-
-for repo in ${PKGREPOS[@]}; do
- for arch in ${ARCHES[@]}; do
- repodb="${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT}"
- filedb="${FTP_BASE}/${repo}/os/${arch}/${repo}${FILESEXT}"
-
- if [ ! -f "${repodb}" ]; then
- continue
- fi
- # get a list of package files defined in the repo db
- mkdir -p "${WORKDIR}/db-dir-${repo}-${arch}"
- bsdtar -xf "${repodb}" -C "${WORKDIR}/db-dir-${repo}-${arch}"
- # This should actualy be faster than reading all the just extracted files
- bsdtar -xOf "${repodb}" | awk '/^%FILENAME%/{getline;print}' | sort > "${WORKDIR}/db-${repo}-${arch}"
-
- # get a list of package files defined in the files db
- mkdir -p "${WORKDIR}/files-current-dir-${repo}-${arch}"
- if [ ! -f "${filedb}" ]; then
- touch "${WORKDIR}/files-${repo}-${arch}"
- else
- bsdtar -xf "${filedb}" -C "${WORKDIR}/files-current-dir-${repo}-${arch}"
- bsdtar -xOf "${filedb}" | awk '/^%FILENAME%/{getline;print}' | sort > "${WORKDIR}/files-${repo}-${arch}"
- fi
- done
-done
-
-case "${FILESEXT}" in
- *.gz) TAR_OPT="z" ;;
- *.bz2) TAR_OPT="j" ;;
- *.xz) TAR_OPT="J" ;;
- *) die "Unknown compression type for FILESEXT=${FILESEXT}" ;;
-esac
-
-for repo in ${PKGREPOS[@]}; do
- for arch in ${ARCHES[@]}; do
- filedb="${FTP_BASE}/${repo}/os/${arch}/${repo}${FILESEXT}"
-
- if [ ! -f "${WORKDIR}/db-${repo}-${arch}" ]; then
- # remove any files db that might be in this empty repo
- if [ -f "${filedb}" ]; then
- rm -f "${filedb}"
- fi
- continue
- fi
-
- # Check if updating the files db is needed
- if ! diff -q "${WORKDIR}/db-${repo}-${arch}" "${WORKDIR}/files-${repo}-${arch}" >/dev/null; then
- mkdir -p "${WORKDIR}/files-new-dir-${repo}-${arch}"
-
- # Include all unchanged file lists
- # Note: deleted packages are implicitly excluded
- for f in $(comm -12 "${WORKDIR}/db-${repo}-${arch}" "${WORKDIR}/files-${repo}-${arch}"); do
- mv "${WORKDIR}/files-current-dir-${repo}-${arch}/${f%*-*${PKGEXT}}" \
- "${WORKDIR}/files-new-dir-${repo}-${arch}"
- done
-
- # Create file lists for new packages
- for f in $(comm -23 "${WORKDIR}/db-${repo}-${arch}" "${WORKDIR}/files-${repo}-${arch}"); do
- tdir="${WORKDIR}/files-new-dir-${repo}-${arch}/${f%*-*${PKGEXT}}"
- mkdir "${tdir}"
- echo '%FILES%' > "${tdir}/files"
- bsdtar --exclude=.* -tf "${FTP_BASE}/${repo}/os/${arch}/${f}" >> "${tdir}/files"
-
- # add desc and depends file from db
- dbdir="${WORKDIR}/db-dir-${repo}-${arch}/${f%*-*${PKGEXT}}"
- mv "${dbdir}/desc" "${tdir}/desc"
- mv "${dbdir}/depends" "${tdir}/depends"
- done
-
- # Create the actual file db
- pushd "${WORKDIR}/files-new-dir-${repo}-${arch}" >/dev/null
- bsdtar -c${TAR_OPT}f "${WORKDIR}/${arch}-${repo}${FILESEXT}" *
- popd >/dev/null
- mv -f "${WORKDIR}/${arch}-${repo}${FILESEXT}" "${filedb}"
- ln -sf "${repo}${FILESEXT}" "${filedb%.tar.*}"
- fi
- done
-done
-
-for repo in ${PKGREPOS[@]}; do
- for arch in ${ARCHES[@]}; do
- repo_unlock ${repo} ${arch}
- done
-done
-
-script_unlock