summaryrefslogtreecommitdiffstats
path: root/db-functions
diff options
context:
space:
mode:
Diffstat (limited to 'db-functions')
-rw-r--r--db-functions29
1 files changed, 28 insertions, 1 deletions
diff --git a/db-functions b/db-functions
index c4fc8f3..f22567b 100644
--- a/db-functions
+++ b/db-functions
@@ -73,7 +73,7 @@ die() {
cleanup 1
}
-trap abort INT QUIT TERM
+trap abort INT QUIT TERM HUP
trap cleanup EXIT
@@ -274,3 +274,30 @@ pkgver_from_src() {
tmp=${tmp%-any}
echo $tmp | sed 's|.*-\(.*-.*\)$|\1|g'
}
+
+check_repo_permission() {
+ local repo=$1
+
+ local repos="$(get_repos_for_host)"
+ local found=false
+ local r
+ for r in $repos; do
+ if [ "$r" = "$repo" ]; then
+ found=true
+ fi
+ done
+ [ $found ] || return 1
+
+ [ -w "$FTP_BASE/$(get_pkgpool_for_host)" ] || return 1
+
+ local arch
+ for arch in ${ARCHES} any; do
+ local w
+ local ws=("${FTP_BASE}/${repo}/os/${arch}/"{,${repo}${DBEXT}})
+ for w in ws; do
+ [ -w ] || return 1
+ done
+ done
+
+ return 0
+}