summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db-functions14
-rwxr-xr-xdb-move3
-rwxr-xr-xdb-remove1
-rwxr-xr-xdb-update1
4 files changed, 19 insertions, 0 deletions
diff --git a/db-functions b/db-functions
index 28928da..7a751bf 100644
--- a/db-functions
+++ b/db-functions
@@ -387,3 +387,17 @@ check_repo_permission() {
return 0
}
+
+set_repo_permission() {
+ local repo=$1
+ local arch=$2
+ local dbfile="${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT}"
+
+ if [ -w "${dbfile}" ]; then
+ local group=$(/usr/bin/stat --printf='%G' "$(dirname "${dbfile}")")
+ chgrp $group "${dbfile}" || error "Could not change group of ${dbfile} to $group"
+ chmod g+w "${dbfile}" || error "Could not set write permission for group $group to ${dbfile}"
+ else
+ error "You don't have permission to change ${dbfile}"
+ fi
+}
diff --git a/db-move b/db-move
index 5ffb8bc..fe9d2c9 100755
--- a/db-move
+++ b/db-move
@@ -108,8 +108,11 @@ for tarch in ${ARCHES[@]}; do
if [ -n "${add_pkgs[${tarch}]}" ]; then
/usr/bin/repo-add -q "${ftppath_to}/${tarch}/${repo_to}${DBEXT}" ${add_pkgs[${tarch}]} >/dev/null \
|| error "repo-add ${tarch}/${repo_to}${DBEXT} ${add_pkgs[${tarch}]}"
+ set_repo_permission "${repo_to}" "${tarch}"
+
/usr/bin/repo-remove -q "${ftppath_from}/${tarch}/${repo_from}${DBEXT}" ${remove_pkgs[${tarch}]} >/dev/null \
|| error "repo-remove ${tarch}/${repo_from}${DBEXT} ${remove_pkgs[${tarch}]}"
+ set_repo_permission "${repo_from}" "${tarch}"
fi
done
diff --git a/db-remove b/db-remove
index 8dabb18..6743eea 100755
--- a/db-remove
+++ b/db-remove
@@ -48,5 +48,6 @@ for tarch in ${tarches[@]}; do
fi
/usr/bin/repo-remove -q "$ftppath/$tarch/$repo$DBEXT" ${pkgnames[@]} >/dev/null
+ set_repo_permission "${repo}" "${tarch}"
repo_unlock $repo $tarch
done
diff --git a/db-update b/db-update
index 13c7441..61d1636 100755
--- a/db-update
+++ b/db-update
@@ -68,6 +68,7 @@ for repo in ${repos[@]}; do
/usr/bin/repo-add -q "$repo$DBEXT" ${add_pkgs[@]} >/dev/null \
|| die "repo-add $repo$DBEXT ${add_pkgs[@]}"
popd >/dev/null
+ set_repo_permission "${repo}" "${pkgarch}"
fi
done
done