index : devtools32 | |
Archlinux32 fork of devtools | gitolite user |
summaryrefslogtreecommitdiff |
author | Eli Schwartz <eschwartz@archlinux.org> | 2019-07-30 20:05:49 -0400 |
---|---|---|
committer | Levente Polyak <anthraxx@archlinux.org> | 2019-08-09 19:41:53 +0200 |
commit | 93dbb14ab9f99e0ac6077637e444e1662ff09bd5 (patch) | |
tree | 2a33405fc6aab162119a6c712544ecd039c2ea5e /archrelease.in | |
parent | 10c6efc440c732b70c1f11302777987cdf7e31de (diff) |
-rw-r--r-- | archrelease.in | 15 |
diff --git a/archrelease.in b/archrelease.in index 25379a7..491e68f 100644 --- a/archrelease.in +++ b/archrelease.in @@ -48,7 +48,8 @@ if [[ $(svn status -q) ]]; then fi pushd .. >/dev/null -IFS=$'\n' read -r -d '' -a known_files < <(svn ls -r HEAD "$trunk") +mapfile -t known_files < <(svn ls -r HEAD "$trunk") +wait $! || die "failed to discover committed files" for file in "${known_files[@]}"; do if [[ ${file:(-1)} = '/' ]]; then die "archrelease: subdirectories are not supported in package directories!" @@ -65,12 +66,12 @@ for tag in "$@"; do stat_busy "Copying %s to %s" "${trunk}" "${tag}" if [[ -d repos/$tag ]]; then - declare -a trash - trash=() - while read -r file; do - trash+=("repos/$tag/$file") - done < <(svn ls "repos/$tag") - [[ ${#trash[@]} == 0 ]] || svn rm -q "${trash[@]/%/@}" + mapfile -t trash < <(svn ls "repos/$tag") + wait $! || die "failed to discover existing files" + if (( ${#trash[@]} )); then + trash=("${trash[@]/#/repos/$tag/}") + svn rm -q "${trash[@]/%/@}" + fi else mkdir -p "repos/$tag" svn add --parents -q "repos/$tag" |