From 2e4060445a894cc91a7b4281ee5ae48cb4f210ab Mon Sep 17 00:00:00 2001 From: Levente Polyak Date: Sat, 13 Aug 2022 16:48:50 +0200 Subject: crossrepomove: fix moving debug packages to the target repo We did not copy over the optional debug packages to the staging environment before db-updating the moved state. Afterwards the db-remove call removed the debug packages from the source repo. This lead to dropping debug packages when using crossrepomove. This approach ensures we have a uniform shell to avoid shell glob behavior inconsistencies. The copy of the package path is mandatory and will error out if missing while the debug package path is optional as reflected by a subshell that succeeds either way. Fixes #92 --- src/crossrepomove.in | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/crossrepomove.in b/src/crossrepomove.in index e4caeea..08a3067 100644 --- a/src/crossrepomove.in +++ b/src/crossrepomove.in @@ -57,9 +57,14 @@ for _arch in "${arch[@]}"; do fi for _pkgname in "${pkgname[@]}"; do fullver=$(get_full_version "$_pkgname") - pkgpath="/srv/ftp/$source_repo/os/$repo_arch/$_pkgname-$fullver-${_arch}.pkg.tar.*" + pkgpath="/srv/ftp/${source_repo}/os/${repo_arch}/${_pkgname}-${fullver}-${_arch}.pkg.tar.*" + debugpath="/srv/ftp/${source_repo}-debug/os/${repo_arch}/${_pkgname}-debug-${fullver}-${_arch}.pkg.tar.*" + # Fail if $pkgpath doesn't match but keep $debugpath optional # shellcheck disable=2029 - ssh "$server" "cp $pkgpath staging/$target_repo" || die + ssh "${server}" "bash -c ' + install ${pkgpath} -Dt staging/${target_repo} && + (install ${debugpath} -Dt staging/${target_repo} 2>/dev/null || true) + '" || die done done -- cgit v1.2.3-70-g09d2