summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2012-10-27 14:32:39 +0200
committerPierre Schmitz <pierre@archlinux.de>2012-10-27 14:39:47 +0200
commitb2952784db9995ecc21d3a770530a19394234d3b (patch)
tree8fedbc5d9b3c309554a45aaf31d414332e28adf0
parenta539598c640caa92e2b1967949836d73c5264036 (diff)
downloaddbscripts-b2952784db9995ecc21d3a770530a19394234d3b.tar.gz
dbscripts-b2952784db9995ecc21d3a770530a19394234d3b.tar.xz
Add the possibility to run all svn commands with a different user
* A SVNUSER can be configured in the config file * This user needs to be able to call svn without a password
-rw-r--r--config1
-rw-r--r--config.local.gerolde1
-rw-r--r--config.local.sigurd1
-rwxr-xr-xcron-jobs/sourceballs2
-rw-r--r--db-functions12
-rwxr-xr-xdb-move18
-rwxr-xr-xdb-remove6
-rw-r--r--test/lib/common.inc14
-rwxr-xr-xtest/test.d/db-update.sh4
-rwxr-xr-xtest/test.d/testing2x.sh2
-rwxr-xr-xtesting2x2
11 files changed, 37 insertions, 26 deletions
diff --git a/config b/config
index 44bfccc..9e3041c 100644
--- a/config
+++ b/config
@@ -1,5 +1,6 @@
FTP_BASE="/srv/ftp"
SVNREPO=''
+SVNUSER=''
PKGREPOS=()
PKGPOOL=''
SRCPOOL=''
diff --git a/config.local.gerolde b/config.local.gerolde
index 5e16b76..f19eeec 100644
--- a/config.local.gerolde
+++ b/config.local.gerolde
@@ -2,5 +2,6 @@ PKGREPOS=('core' 'extra' 'testing' 'staging' 'kde-unstable' 'gnome-unstable')
PKGPOOL='pool/packages'
SRCPOOL='sources/packages'
SVNREPO='file:///srv/svn-packages'
+SVNUSER=''
TESTING_REPO='testing'
STABLE_REPOS=('core' 'extra')
diff --git a/config.local.sigurd b/config.local.sigurd
index 4f95bd2..afd5cba 100644
--- a/config.local.sigurd
+++ b/config.local.sigurd
@@ -2,5 +2,6 @@ PKGREPOS=('community' 'community-testing' 'community-staging' 'multilib' 'multil
PKGPOOL='pool/community'
SRCPOOL='sources/community'
SVNREPO='file:///srv/svn-packages'
+SVNUSER=''
TESTING_REPO='community-testing'
STABLE_REPOS=('community')
diff --git a/cron-jobs/sourceballs b/cron-jobs/sourceballs
index aee3e02..5d2b086 100755
--- a/cron-jobs/sourceballs
+++ b/cron-jobs/sourceballs
@@ -79,7 +79,7 @@ for repo in ${PKGREPOS[@]}; do
# Get the sources from svn
mkdir -p "${WORKDIR}/pkgbuilds/${repo}-${pkgarch}"
- svn export -q "${SVNREPO}/${pkgbase}/repos/${repo}-${pkgarch}" \
+ arch_svn export -q "${SVNREPO}/${pkgbase}/repos/${repo}-${pkgarch}" \
"${WORKDIR}/pkgbuilds/${repo}-${pkgarch}/${pkgbase}" >/dev/null 2>&1
if [ $? -ge 1 ]; then
failedpkgs[${#failedpkgs[*]}]="${pkgbase}-${pkgver}${SRCEXT}"
diff --git a/db-functions b/db-functions
index e3485d3..b9d0d2f 100644
--- a/db-functions
+++ b/db-functions
@@ -347,7 +347,7 @@ check_pkgsvn() {
if [ ! -f "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}" ]; then
mkdir -p "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}"
- svn export -q "${SVNREPO}/${_pkgbase}/repos/${repo}-${_pkgarch}/PKGBUILD" \
+ arch_svn export -q "${SVNREPO}/${_pkgbase}/repos/${repo}-${_pkgarch}/PKGBUILD" \
"${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}" >/dev/null
[ $? -ge 1 ] && return 1
fi
@@ -382,7 +382,7 @@ check_splitpkgs() {
if [ ! -f "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}" ]; then
mkdir -p "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}"
- svn export -q "${SVNREPO}/${_pkgbase}/repos/${repo}-${_pkgarch}/PKGBUILD" \
+ arch_svn export -q "${SVNREPO}/${_pkgbase}/repos/${repo}-${_pkgarch}/PKGBUILD" \
"${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}" >/dev/null
[ $? -ge 1 ] && return 1
fi
@@ -504,3 +504,11 @@ arch_repo_remove() {
|| error "repo-remove ${filesfile} ${pkgs[@]}"
set_repo_permission "${repo}" "${arch}"
}
+
+arch_svn() {
+ if [ -z "${SVNUSER}" ]; then
+ /usr/bin/svn "${@}"
+ else
+ sudo -u "${SVNUSER}" -- /usr/bin/svn "${@}"
+ fi
+}
diff --git a/db-move b/db-move
index 1a89ded..1fa44d4 100755
--- a/db-move
+++ b/db-move
@@ -25,9 +25,9 @@ for pkgarch in ${ARCHES[@]}; do
done
# check if packages to be moved exist in svn and ftp dir
-/usr/bin/svn checkout -q -N "${SVNREPO}" "${WORKDIR}/svn" >/dev/null
+arch_svn checkout -q -N "${SVNREPO}" "${WORKDIR}/svn" >/dev/null
for pkgbase in ${args[@]:2}; do
- /usr/bin/svn up -q "${WORKDIR}/svn/${pkgbase}" >/dev/null
+ arch_svn up -q "${WORKDIR}/svn/${pkgbase}" >/dev/null
for pkgarch in ${ARCHES[@]} 'any'; do
svnrepo_from="${WORKDIR}/svn/${pkgbase}/repos/${repo_from}-${pkgarch}"
if [ -r "${svnrepo_from}/PKGBUILD" ]; then
@@ -79,18 +79,18 @@ for pkgbase in ${args[@]:2}; do
pkgver=$(. "${svnrepo_from}/PKGBUILD"; echo $(get_full_version ${epoch:-0} ${pkgver} ${pkgrel}))
if [ -d "${svnrepo_to}" ]; then
- for file in $(/usr/bin/svn ls "${svnrepo_to}"); do
- /usr/bin/svn rm -q "${svnrepo_to}/$file@"
+ for file in $(arch_svn ls "${svnrepo_to}"); do
+ arch_svn rm -q "${svnrepo_to}/$file@"
done
else
mkdir "${svnrepo_to}"
- /usr/bin/svn add -q "${svnrepo_to}"
+ arch_svn add -q "${svnrepo_to}"
fi
- for file in $(svn ls "${svnrepo_from}"); do
- /usr/bin/svn mv -q -r HEAD "${svnrepo_from}/$file@" "${svnrepo_to}/"
+ for file in $(arch_svn ls "${svnrepo_from}"); do
+ arch_svn mv -q -r HEAD "${svnrepo_from}/$file@" "${svnrepo_to}/"
done
- /usr/bin/svn rm --force -q "${svnrepo_from}"
+ arch_svn rm --force -q "${svnrepo_from}"
tag_list="$tag_list, $pkgarch"
for pkgname in ${pkgnames[@]}; do
@@ -109,7 +109,7 @@ for pkgbase in ${args[@]:2}; do
fi
done
tag_list="${tag_list#, }"
- /usr/bin/svn commit -q "${WORKDIR}/svn/${pkgbase}" -m "${0##*/}: moved ${pkgbase} from [${repo_from}] to [${repo_to}] (${tag_list})"
+ arch_svn commit -q "${WORKDIR}/svn/${pkgbase}" -m "${0##*/}: moved ${pkgbase} from [${repo_from}] to [${repo_to}] (${tag_list})"
done
for tarch in ${ARCHES[@]}; do
diff --git a/db-remove b/db-remove
index da32c78..25cb9a7 100755
--- a/db-remove
+++ b/db-remove
@@ -32,12 +32,12 @@ done
remove_pkgs=()
for pkgbase in ${pkgbases[@]}; do
msg "Removing $pkgbase from [$repo]..."
- /usr/bin/svn checkout -q "${SVNREPO}/${pkgbase}" "${WORKDIR}/svn/${pkgbase}" >/dev/null
+ arch_svn checkout -q "${SVNREPO}/${pkgbase}" "${WORKDIR}/svn/${pkgbase}" >/dev/null
if [ -d "${WORKDIR}/svn/$pkgbase/repos/$svnrepo" ]; then
remove_pkgs=(${remove_pkgs[@]} $(. "${WORKDIR}/svn/$pkgbase/repos/$svnrepo/PKGBUILD"; echo ${pkgname[@]}))
- /usr/bin/svn rm --force -q "${WORKDIR}/svn/$pkgbase/repos/$svnrepo"
- /usr/bin/svn commit -q "${WORKDIR}/svn/$pkgbase" -m "${0##*/}: $pkgbase removed by $(id -un)"
+ 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
warning "$pkgbase not found in $svnrepo"
warning "Removing only $pkgbase from the repo"
diff --git a/test/lib/common.inc b/test/lib/common.inc
index 35cdaee..aeceece 100644
--- a/test/lib/common.inc
+++ b/test/lib/common.inc
@@ -91,14 +91,14 @@ setUp() {
msg 'Creating svn repository...'
svnadmin create "${TMP}/svn-packages-repo"
- svn checkout -q "file://${TMP}/svn-packages-repo" "${TMP}/svn-packages-copy"
+ arch_svn checkout -q "file://${TMP}/svn-packages-repo" "${TMP}/svn-packages-copy"
for p in "${pkgdir}"/*; do
pkg=${p##*/}
mkdir -p "${TMP}/svn-packages-copy/${pkg}"/{trunk,repos}
cp "${p}"/* "${TMP}/svn-packages-copy"/${pkg}/trunk/
- svn add -q "${TMP}/svn-packages-copy"/${pkg}
- svn commit -q -m"initial commit of ${pkg}" "${TMP}/svn-packages-copy"
+ arch_svn add -q "${TMP}/svn-packages-copy"/${pkg}
+ arch_svn commit -q -m"initial commit of ${pkg}" "${TMP}/svn-packages-copy"
done
cat <<eot > "$(dirname ${BASH_SOURCE[0]})/../../config.local"
@@ -189,7 +189,7 @@ checkAnyPackage() {
checkAnyPackageDB $repo $pkg
local pkgbase=$(getpkgbase "${FTP_BASE}/${PKGPOOL}/${pkg}")
- svn up -q "${TMP}/svn-packages-copy/${pkgbase}"
+ arch_svn up -q "${TMP}/svn-packages-copy/${pkgbase}"
[ -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-any" ] \
|| fail "svn-packages-copy/${pkgbase}/repos/${repo}-any does not exist"
}
@@ -231,7 +231,7 @@ checkPackage() {
checkPackageDB $repo $pkg $arch
local pkgbase=$(getpkgbase "${FTP_BASE}/${PKGPOOL}/${pkg}")
- svn up -q "${TMP}/svn-packages-copy/${pkgbase}"
+ arch_svn up -q "${TMP}/svn-packages-copy/${pkgbase}"
[ -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}" ] \
|| fail "svn-packages-copy/${pkgbase}/repos/${repo}-${arch} does not exist"
}
@@ -256,7 +256,7 @@ checkRemovedPackage() {
checkRemovedPackageDB $repo $pkgbase $arch
- svn up -q "${TMP}/svn-packages-copy/${pkgbase}"
+ arch_svn up -q "${TMP}/svn-packages-copy/${pkgbase}"
[ -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}" ] \
&& fail "svn-packages-copy/${pkgbase}/repos/${repo}-${arch} should not exist"
}
@@ -282,7 +282,7 @@ checkRemovedAnyPackage() {
checkRemovedAnyPackageDB $repo $pkgbase
- svn up -q "${TMP}/svn-packages-copy/${pkgbase}"
+ arch_svn up -q "${TMP}/svn-packages-copy/${pkgbase}"
[ -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-any" ] \
&& fail "svn-packages-copy/${pkgbase}/repos/${repo}-any should not exist"
}
diff --git a/test/test.d/db-update.sh b/test/test.d/db-update.sh
index 67bca9f..ea1e130 100755
--- a/test/test.d/db-update.sh
+++ b/test/test.d/db-update.sh
@@ -81,7 +81,7 @@ testUpdateAnyPackage() {
pushd "${TMP}/svn-packages-copy/pkg-any-a/trunk/" >/dev/null
sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD
- svn commit -q -m"update pkg to pkgrel=2" >/dev/null
+ arch_svn commit -q -m"update pkg to pkgrel=2" >/dev/null
sudo extra-i686-build
mv pkg-any-a-1-2-any.pkg.tar.xz "${pkgdir}/pkg-any-a/"
popd >/dev/null
@@ -99,7 +99,7 @@ testUpdateAnyPackageToDifferentRepositoriesAtOnce() {
pushd "${TMP}/svn-packages-copy/pkg-any-a/trunk/" >/dev/null
sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD
- svn commit -q -m"update pkg to pkgrel=2" >/dev/null
+ arch_svn commit -q -m"update pkg to pkgrel=2" >/dev/null
sudo extra-i686-build
mv pkg-any-a-1-2-any.pkg.tar.xz "${pkgdir}/pkg-any-a/"
popd >/dev/null
diff --git a/test/test.d/testing2x.sh b/test/test.d/testing2x.sh
index 357f3c2..31d85b4 100755
--- a/test/test.d/testing2x.sh
+++ b/test/test.d/testing2x.sh
@@ -9,7 +9,7 @@ testTesting2xAnyPackage() {
pushd "${TMP}/svn-packages-copy/pkg-any-a/trunk/" >/dev/null
sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD
- svn commit -q -m"update pkg to pkgrel=2" >/dev/null
+ arch_svn commit -q -m"update pkg to pkgrel=2" >/dev/null
sudo extra-i686-build
mv pkg-any-a-1-2-any.pkg.tar.xz "${pkgdir}/pkg-any-a/"
popd >/dev/null
diff --git a/testing2x b/testing2x
index a05cb53..369857f 100755
--- a/testing2x
+++ b/testing2x
@@ -20,7 +20,7 @@ declare -A pkgs
for pkgbase in $*; do
if [ ! -d "${WORKDIR}/${pkgbase}" ]; then
- /usr/bin/svn export -q "${SVNREPO}/${pkgbase}/repos" "${WORKDIR}/${pkgbase}" >/dev/null
+ arch_svn export -q "${SVNREPO}/${pkgbase}/repos" "${WORKDIR}/${pkgbase}" >/dev/null
found_source=false
for pkgarch in ${ARCHES[@]} 'any'; do