2012-03-05 01:48:27 +01:00
|
|
|
#!/bin/bash
|
2017-03-28 22:13:18 +02:00
|
|
|
# License: Unspecified
|
2012-03-05 01:48:27 +01:00
|
|
|
|
|
|
|
m4_include(lib/common.sh)
|
|
|
|
|
|
|
|
scriptname=${0##*/}
|
|
|
|
|
|
|
|
if [[ -z $1 ]]; then
|
2017-04-02 10:09:55 +02:00
|
|
|
printf 'Usage: %s [pkgbase]\n' "$scriptname"
|
2012-03-05 01:48:27 +01:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
pkgbase="${1}"
|
|
|
|
|
|
|
|
case $scriptname in
|
|
|
|
extra2community)
|
2013-01-27 17:04:26 +01:00
|
|
|
source_name='packages'
|
|
|
|
target_name='community'
|
2012-03-05 01:48:27 +01:00
|
|
|
source_repo='extra'
|
|
|
|
target_repo='community'
|
|
|
|
;;
|
|
|
|
community2extra)
|
2013-01-27 17:04:26 +01:00
|
|
|
source_name='community'
|
|
|
|
target_name='packages'
|
2012-03-05 01:48:27 +01:00
|
|
|
source_repo='community'
|
|
|
|
target_repo='extra'
|
|
|
|
;;
|
|
|
|
*)
|
2013-07-30 21:24:48 +02:00
|
|
|
die "Couldn't find configuration for %s" "$scriptname"
|
2012-03-05 01:48:27 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2016-05-27 21:02:46 +02:00
|
|
|
server='repos.archlinux.org'
|
2013-01-27 17:04:26 +01:00
|
|
|
source_svn="svn+ssh://svn-${source_name}@${server}/srv/repos/svn-${source_name}/svn"
|
|
|
|
target_svn="svn+ssh://svn-${target_name}@${server}/srv/repos/svn-${target_name}/svn"
|
|
|
|
source_dbscripts="/srv/repos/svn-${source_name}/dbscripts"
|
|
|
|
target_dbscripts="/srv/repos/svn-${target_name}/dbscripts"
|
|
|
|
|
2012-03-05 01:48:27 +01:00
|
|
|
setup_workdir
|
|
|
|
|
2017-05-06 00:41:08 +02:00
|
|
|
pushd "$WORKDIR" >/dev/null
|
2012-03-05 01:48:27 +01:00
|
|
|
|
2017-04-02 10:09:55 +02:00
|
|
|
msg "Downloading sources for %s" "${pkgbase}"
|
2012-03-05 01:48:27 +01:00
|
|
|
svn -q checkout -N "${target_svn}" target_checkout
|
|
|
|
mkdir -p "target_checkout/${pkgbase}/repos"
|
|
|
|
svn -q export "${source_svn}/${pkgbase}/trunk" "target_checkout/${pkgbase}/trunk" || die
|
2017-05-06 00:41:10 +02:00
|
|
|
# shellcheck source=PKGBUILD.proto
|
2012-03-05 01:48:27 +01:00
|
|
|
. "target_checkout/${pkgbase}/trunk/PKGBUILD"
|
|
|
|
|
2017-04-02 10:09:55 +02:00
|
|
|
msg "Downloading packages for %s" "${pkgbase}"
|
2017-05-06 00:41:08 +02:00
|
|
|
for _arch in "${arch[@]}"; do
|
2012-03-05 01:48:27 +01:00
|
|
|
if [[ "${_arch[*]}" == 'any' ]]; then
|
|
|
|
repo_arch='x86_64'
|
|
|
|
else
|
|
|
|
repo_arch=${_arch}
|
|
|
|
fi
|
2017-05-06 00:41:08 +02:00
|
|
|
for _pkgname in "${pkgname[@]}"; do
|
|
|
|
fullver=$(get_full_version "$_pkgname")
|
2013-05-10 05:49:01 +02:00
|
|
|
pkgpath="/srv/ftp/$source_repo/os/$repo_arch/$_pkgname-$fullver-${_arch}.pkg.tar.*"
|
2017-05-06 00:41:10 +02:00
|
|
|
# shellcheck disable=2029
|
2013-05-10 05:49:01 +02:00
|
|
|
ssh "$server" "cp $pkgpath staging/$target_repo" || die
|
2012-03-05 01:48:27 +01:00
|
|
|
done
|
|
|
|
done
|
|
|
|
|
2017-04-02 10:09:55 +02:00
|
|
|
msg "Adding %s to %s" "${pkgbase}" "${target_repo}"
|
2012-03-05 01:48:27 +01:00
|
|
|
svn -q add "target_checkout/${pkgbase}"
|
|
|
|
svn -q commit -m"${scriptname}: Moving ${pkgbase} from ${source_repo} to ${target_repo}" target_checkout
|
|
|
|
pushd "target_checkout/${pkgbase}/trunk" >/dev/null
|
|
|
|
archrelease "${arch[@]/#/$target_repo-}" || die
|
|
|
|
popd >/dev/null
|
2012-11-13 09:08:46 +01:00
|
|
|
|
2017-05-06 00:41:10 +02:00
|
|
|
# shellcheck disable=2029
|
2013-01-27 17:04:26 +01:00
|
|
|
ssh "${server}" "${target_dbscripts}/db-update" || die
|
2012-03-05 01:48:27 +01:00
|
|
|
|
2017-04-02 10:09:55 +02:00
|
|
|
msg "Removing %s from %s" "${pkgbase}" "${source_repo}"
|
2017-05-06 00:41:08 +02:00
|
|
|
for _arch in "${arch[@]}"; do
|
2017-05-06 00:41:10 +02:00
|
|
|
# shellcheck disable=2029
|
2013-01-27 17:04:26 +01:00
|
|
|
ssh "${server}" "${source_dbscripts}/db-remove ${source_repo} ${_arch} ${pkgbase}"
|
2012-03-05 01:48:27 +01:00
|
|
|
done
|
|
|
|
svn -q checkout -N "${source_svn}" source_checkout
|
|
|
|
svn -q up "source_checkout/${pkgbase}"
|
|
|
|
svn -q rm "source_checkout/${pkgbase}"
|
|
|
|
svn -q commit -m"${scriptname}: Moving ${pkgbase} from ${source_repo} to ${target_repo}" source_checkout
|
|
|
|
|
|
|
|
popd >/dev/null
|