summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Griffin <aaronmgriffin@gmail.com>2008-10-21 22:06:06 +0200
committerAaron Griffin <aaronmgriffin@gmail.com>2008-10-21 22:11:24 +0200
commit23f48e65a5f4133be8a5d2883de6ffb2f4f04962 (patch)
tree2106d4d3a956424e9068e231b55c98ffc99c558c
parent0dd49e0e02f40a1687814f15d4aea55e1cc8411a (diff)
downloaddbscripts-23f48e65a5f4133be8a5d2883de6ffb2f4f04962.tar.gz
dbscripts-23f48e65a5f4133be8a5d2883de6ffb2f4f04962.tar.xz
Add copy_helper function to ensure correct permissions
This will force all files copied back and forth to have 0664 permissions so that we can attempt to do away with this permission adjusting cron job Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
-rw-r--r--db-functions7
-rwxr-xr-xdb-move6
-rwxr-xr-xdb-remove4
-rwxr-xr-xdb-update12
4 files changed, 19 insertions, 10 deletions
diff --git a/db-functions b/db-functions
index 9df678c..a20496b 100644
--- a/db-functions
+++ b/db-functions
@@ -61,4 +61,11 @@ check_pkg_arch () { #check_pkg_arch pkgfile arch
fi
}
+# Simple helper function to ensure we always
+# have proper DB permissions
+copy_helper () { #copy_helper file dest
+ /bin/cp $1 $2 || return 1
+ /bin/chmod 664 "$(dirname $2)/$(basename $1)" || return 1
+}
+
# vim: set ts=4 sw=4 noet ft=sh:
diff --git a/db-move b/db-move
index c8d30c4..aee18f2 100755
--- a/db-move
+++ b/db-move
@@ -85,7 +85,7 @@ if [ -d "$packagename/repos/$svnrepo_from" ]; then
# copy the db file into our working area
if [ -f "$ftppath_from/$repofrom.db.tar.$DB_COMPRESSION" ]; then
- cp "$ftppath_from/$repofrom.db.tar.$DB_COMPRESSION" .
+ copy_helper "$ftppath_from/$repofrom.db.tar.$DB_COMPRESSION" .
else
touch "$repofrom.db.tar.$DB_COMPRESSION"
fi
@@ -96,12 +96,12 @@ if [ -d "$packagename/repos/$svnrepo_from" ]; then
echo " Package files will be cleaned up automatically"
if [ -f "$ftppath_to/$repoto.db.tar.$DB_COMPRESSION" ]; then
- cp "$ftppath_to/$repoto.db.tar.$DB_COMPRESSION" .
+ copy_helper "$ftppath_to/$repoto.db.tar.$DB_COMPRESSION" .
else
touch "$repoto.db.tar.$DB_COMPRESSION"
fi
- cp "$ftppath_from/$_pkgfile" .
+ copy_helper "$ftppath_from/$_pkgfile" .
/usr/bin/repo-add "$repoto.db.tar.$DB_COMPRESSION" $_pkgfile || die "Error in repo-add"
#use '*' to move the old DB too
mv $repoto.db.tar.$DB_COMPRESSION* $_pkgfile $ftppath_to
diff --git a/db-remove b/db-remove
index fdc7c5d..bb91afd 100755
--- a/db-remove
+++ b/db-remove
@@ -68,7 +68,7 @@ cd "$WORKDIR"
# copy the db file into our working area
if [ -f "$ftppath/$reponame.db.tar.$DB_COMPRESSION" ]; then
- cp "$ftppath/$reponame.db.tar.$DB_COMPRESSION" build/
+ copy_helper "$ftppath/$reponame.db.tar.$DB_COMPRESSION" build/
else
echo "No database found at '$ftpdir', nothing more to do"
exit 0
@@ -78,7 +78,7 @@ echo " Removing from $reponame DB file"
cd build/
/usr/bin/repo-remove "$reponame.db.tar.$DB_COMPRESSION" $packagename
-cp "$reponame.db.tar.$DB_COMPRESSION" "$ftppath/"
+copy_helper "$reponame.db.tar.$DB_COMPRESSION" "$ftppath/"
echo "Package files will be cleaned up automatically"
diff --git a/db-update b/db-update
index 81b3905..d25ab2c 100755
--- a/db-update
+++ b/db-update
@@ -76,7 +76,7 @@ cd "$WORKDIR"
# copy the db file into our working area
if [ -f "$ftppath/$reponame.db.tar.$DB_COMPRESSION" ]; then
- cp "$ftppath/$reponame.db.tar.$DB_COMPRESSION" build/
+ copy_helper "$ftppath/$reponame.db.tar.$DB_COMPRESSION" build/
else
touch "build/$reponame.db.tar.$DB_COMPRESSION"
fi
@@ -130,7 +130,7 @@ if [ -n "$ADDPKGS" ]; then
if [ -n "$to_add" ]; then
cd "$WORKDIR/build/"
- /bin/cp $to_add .
+ for f in $to_add; do copy_helper "$f" .; done
pkgs=""
for pkg in $to_add; do pkgs="$pkgs $(basename $pkg)"; done
@@ -192,9 +192,11 @@ fi
# if non empty, move all build dirs
if [ $(/bin/ls "$WORKDIR/build/" 2>/dev/null | wc -l) != 0 ]; then
echo "Copying new files to '$ftppath'"
- if ! /bin/cp -r "$WORKDIR/build/"* "$ftppath"; then
- die "error: failure while copying files to $ftppath"
- fi
+ for f in "$WORKDIR/build/"*; do
+ if ! copy_helper "$f" "$ftppath"; then
+ die "error: failure while copying files to $ftppath"
+ fi
+ done
else
echo "Nothing to copy, no work done"