From 8b6653a2c6c7e55f2c312735a31e0f42d7260bbd Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 9 Dec 2013 03:20:17 -0500 Subject: clean up db-import --- db-import | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) (limited to 'db-import') diff --git a/db-import b/db-import index 79dcfd5..a8a073d 100755 --- a/db-import +++ b/db-import @@ -1,9 +1,10 @@ -#!/bin/bash -euE +#!/bin/bash +set -euE # Imports Arch-like repos, running them through a blacklist # License: GPLv3 -. "$(dirname "$(readlink -e "$0")")/config" -. "$(dirname "$(readlink -e "$0")")/db-import.conf" +. "$(dirname "$(readlink -e "$0")")/config" # for: FTP_BASE DBEXT +. "$(dirname "$(readlink -e "$0")")/db-import.conf" # for: IMPORTDIR IMPORTS . "$(librelib messages)" . "$(librelib blacklist)" @@ -17,17 +18,18 @@ # 1. "${IMPORTDIR}/cache/${name}/dbs/" # Download the pacman databases # 2. "${IMPORTDIR}/cache/${name}/abs/" # Download the ABS tree # 3. "${IMPORTDIR}/clean/${name}/dbs/" # Run the pacman DBs through the blacklist -# 4. Download all the package files mentioned in "clean/${name/dbs/" -# 5. "${STAGING}-importer-${tag}" Copy all the package files we just downloaded to here -# 6. Run db-update on "${STAGING}-importer-${tag}" +# 4. "${IMPORTDIR}/clean/${name}/pkgs/" # Download the pkg files mentioned in "clean/${name}/dbs/" +# 5. "${IMPORTDIR}/staging/${tag}" # Copy all the package files we just downloaded to here +# 6. Run `db-update on` with STAGING="${IMPORTDIR}/staging/${tag}" +# generic arguments to pass to rsync, borrowed from `abs` SYNCARGS='-mrtvlH --no-motd --no-p --no-o --no-g' main() { blacklist-update local importStr - for importStr in "${imports[@]}"; do + for importStr in "${IMPORTS[@]}"; do local importAry=($importStr) local name=${importAry[0]} local pkgmirror=${importAry[1]} @@ -39,6 +41,7 @@ main() { fetch_abs "$name" "$absmirror" "${tags[@]}" msg "Filtering blacklisted packages from remote package source: %s" "$name" clean_dbs "$name" "${tags[@]}" + fetch_pkgs "$name" "${tags[@]}" msg "Publishing changes from remote package source: %s" "$name" publish "$name" "${tags[@]}" done @@ -66,8 +69,7 @@ fetch_abs() { local absmirror=$2 local tags=("${@:3}") - local _HOME=$HOME - + local fake_home local absroot # Sync the ABS tree from $absmirror @@ -79,8 +81,8 @@ fetch_abs() { mkdir -p -- "$absroot" # Configure `abs` for this mirror - export HOME="${IMPORTDIR}/homes/${name}/${arch}" - mkdir -p -- "$HOME" + fake_home="${IMPORTDIR}/homes/${name}/${arch}" + mkdir -p -- "$fake_home" { printf "ABSROOT='%s'\n" "$absroot" printf "SYNCSERVER='%s'\n" "$absmirror" @@ -88,13 +90,11 @@ fetch_abs() { printf 'REPOS=(\n' list_repos "$arch" "${tags[@]}" printf ')\n' - } > ~/.abs.conf + } > "${fake_home}/.abs.conf" # Run `abs` - abs + HOME=$fake_home abs done - - export HOME=$_HOME } clean_dbs() { @@ -111,7 +111,7 @@ clean_dbs() { local clean="${IMPORTDIR}/clean/$name/dbs/$(db_file "$tag")" install -Dm644 "$cache" "$clean" - repo-remove "$clean" $(blacklist-cat|blacklist-get-pkg) + blacklist-cat | blacklist-get-pkg | xargs -d '\n' repo-remove "$clean" done } @@ -196,17 +196,12 @@ publish_tag() { return 1 fi - local _STAGING=$STAGING - export STAGING="$STAGING-importer-$tag" - - mkdir -p -- "${STAGING}/${repo}" - cp -a -- "${files[@]}" "${STAGING}/${repo}/" - db-update + mkdir -p -- "${IMPORTDIR}/staging/${tag}/${repo}" + cp -al -- "${files[@]}" "${IMPORTDIR}/staging/${tag}/${repo}/" + STAGING="${IMPORTDIR}/staging/${tag}" db-update # XXX: db-remove wants pkgbase, not pkgname - db-remove "$repo" "$arch" $(list_removed_pkgs "$name" "$tag") - - STAGING=$_STAGING + list_removed_pkgs "$name" "$tag" | xargs -d '\n' db-remove "$repo" "$arch" } ################################################################################ -- cgit v1.2.3-2-g168b