diff options
author | Luke Shumaker <lukeshu@parabola.nu> | 2018-07-15 21:55:51 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@parabola.nu> | 2018-10-07 19:00:51 -0400 |
commit | c09e8c45175970ed66c0a4124618e07b252a5fc6 (patch) | |
tree | 0a5895e81c9791fc0ff047c74dab42404c9b9f15 | |
parent | b4b486925c5be2f1c666d46243866a13b2bc0329 (diff) |
Have vcs_remove take $tarch instread of $pkgarch
-rw-r--r-- | db-functions-none | 4 | ||||
-rw-r--r-- | db-functions-svn | 14 | ||||
-rwxr-xr-x | db-remove | 2 |
3 files changed, 13 insertions, 7 deletions
diff --git a/db-functions-none b/db-functions-none index 1d5a346..270719a 100644 --- a/db-functions-none +++ b/db-functions-none @@ -46,12 +46,12 @@ vcs_move_finish() { : } -# usage: vcs_remove repo pkgarch pkgbase +# usage: vcs_remove repo tarch pkgbase # # Remove the given package in VCS. vcs_remove() { local repo=$1 - local arch=$2 + local tarch=$2 local pkgbase=$3 : diff --git a/db-functions-svn b/db-functions-svn index 9151b44..4d6717d 100644 --- a/db-functions-svn +++ b/db-functions-svn @@ -113,21 +113,27 @@ vcs_move_finish() { arch_svn commit -q "${WORKDIR}/svn/${pkgbase}" -m "${0##*/}: moved ${pkgbase} from [${repo_from}] to [${repo_to}] (${tag_list})" } -# usage: vcs_remove repo pkgarch pkgbase +# usage: vcs_remove repo tarch pkgbase # # Remove the given package in VCS. vcs_remove() { local repo=$1 - local arch=$2 + local tarch=$2 local pkgbase=$3 local svnrepo="$repo-$arch" _svn_checkout "$pkgbase" - if [[ -d ${WORKDIR}/svn/$pkgbase/repos/$svnrepo ]]; then + if [[ -d ${WORKDIR}/svn/$pkgbase/repos/$repo-$tarch ]]; then + pkgarch=$tarch + elif [[ -d ${WORKDIR}/svn/$pkgbase/repos/$repo-any ]]; then + pkgarch=any + fi + if [[ -d ${WORKDIR}/svn/$pkgbase/repos/$repo-$pkgarch ]]; then arch_svn rm --force -q "${WORKDIR}/svn/$pkgbase/repos/$svnrepo" arch_svn commit -q "${WORKDIR}/svn/$pkgbase" -m "${0##*/}: $pkgbase removed by $(id -un)" - else + svn_removed+=("$repo-$pkgarch/$pkgbase") + elif ! in_array "$repo-$pkgarch/$pkgbase" "${svn_removed[@]}"; then warning "pkgbase '%s' not found in svn; unable to commit removal to svn" "$pkgbase" fi } @@ -32,8 +32,8 @@ for pkgbase in "${pkgbases[@]}"; do declare -n remove_pkgs="remove_pkgs_${tarch}" mapfile -t pkgnames < <(arch_expac_pkgbase "$repo" "$tarch" '%n' "$pkgbase") remove_pkgs+=("${pkgnames[@]}") + vcs_remove "$repo" "$tarch" "$pkgbase" done - vcs_remove "$repo" "$arch" "$pkgbase" done for tarch in "${tarches[@]}"; do |