summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLevente Polyak <anthraxx@archlinux.org>2022-06-10 00:57:45 +0200
committerLevente Polyak <anthraxx@archlinux.org>2022-06-10 16:51:52 +0200
commitac222ae00469555269722483a1d936997b220f4b (patch)
treec82087acd1bee16b80b243f6f30af538289919aa
parentcde012d25e7b9cb8b459af151c7210f2eddf4763 (diff)
downloaddevtools-ac222ae00469555269722483a1d936997b220f4b.tar.xz
archrelease: support subdirectories in package directories
We need to support subdirectories for the `keys` directory used to distribute PGP keys alongside the packaging sources. This is achieved by using `svn ls` to list the files and directories in the packaging root and leverage the behavior of `svn copy` to consider subdirectories inside the root but only copy over files and directories under the subdirectory that are already tracked by svn. As a step in between, we now use `svn ls --recursive` to list all tracked svn files in the current repos directory and remove all tracked files in the staging area. Hence the `svn copy` in combination with the `svn rm` will result in a sync behavior from the packaging root to the repos directory. Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
-rw-r--r--archrelease.in7
1 files changed, 1 insertions, 6 deletions
diff --git a/archrelease.in b/archrelease.in
index 252db28..3490ee2 100644
--- a/archrelease.in
+++ b/archrelease.in
@@ -51,11 +51,6 @@ fi
pushd .. >/dev/null
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!"
- fi
-done
# gracefully handle files containing an "@" character
known_files=("${known_files[@]/%/@}")
@@ -67,7 +62,7 @@ for tag in "$@"; do
stat_busy "Copying %s to %s" "${trunk}" "${tag}"
if [[ -d repos/$tag ]]; then
- mapfile -t trash < <(svn ls "repos/$tag")
+ mapfile -t trash < <(svn ls --recursive "repos/$tag")
wait $! || die "failed to discover existing files"
if (( ${#trash[@]} )); then
trash=("${trash[@]/#/repos/$tag/}")