From 5ceb97b5a0e3710755df413aeec0485a13ee0ffd Mon Sep 17 00:00:00 2001 From: "Kyle J. McKay" Date: Tue, 7 May 2013 20:09:56 -0700 Subject: [PATCH] Improve OS compatibility Use ':' separator between owner and group in chown command. Use '-pR' to preserve and recursively copy contents in cp command. Add missing ';' terminator to sed command list. --- Girocco/Project.pm | 2 +- fixupd/fixup.sh | 6 +++--- install.sh | 10 +++++----- jailsetup.sh | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Girocco/Project.pm b/Girocco/Project.pm index cf35f15..da8026a 100644 --- a/Girocco/Project.pm +++ b/Girocco/Project.pm @@ -182,7 +182,7 @@ sub _alternates_setup { # copy refs from parent project # ownership information is changed by a root cronjob - system("cp -a $forkee_path/refs $self->{path}/"); + system("cp -pR $forkee_path/refs $self->{path}/"); # initialize HEAD, hacky version system("cp $forkee_path/HEAD $self->{path}/HEAD"); } diff --git a/fixupd/fixup.sh b/fixupd/fixup.sh index 8b30db9..5409b6b 100755 --- a/fixupd/fixup.sh +++ b/fixupd/fixup.sh @@ -20,15 +20,15 @@ case "$proj" in esac cd "$proj.git" -chmod ug+rw,o+r . -R 2>&1 | (grep -v 'No such file or directory' || true) +chmod -R ug+rw,o+r . 2>&1 | (grep -v 'No such file or directory' || true) [ -e .nofetch ] || exit xproj="$(echo "$proj" | sed 's/[.\/]/\\&/g')" -gid="$(sed -ne "/^$xproj:/ { s/^[^:]*:[^:]*:\([0-9]*\):.*/\1/; p }" "$groupfile")" +gid="$(sed -ne "/^$xproj:/ { s/^[^:]*:[^:]*:\([0-9]*\):.*/\1/; p; }" "$groupfile")" if [ -z "$gid" ]; then echo "cannot resolve gid for $proj ($xproj)" >&2 exit 1 fi -chown "$mirror_user"."$gid" info refs packed-refs objects -R 2>&1 | (grep -v 'No such file or directory' || true) +chown -R "$mirror_user":"$gid" info refs packed-refs objects 2>&1 | (grep -v 'No such file or directory' || true) diff --git a/install.sh b/install.sh index 0d3f4bd..72ec5e3 100755 --- a/install.sh +++ b/install.sh @@ -14,13 +14,13 @@ perl -I. -M$GIROCCO_CONF -e '' . ./shlib.sh owngroup="" -[ -z "$cfg_owning_group" ] || owngroup=".$cfg_owning_group" +[ -z "$cfg_owning_group" ] || owngroup=":$cfg_owning_group" echo "*** Setting up basedir..." rm -fr "$cfg_basedir" mkdir -p "$cfg_basedir" -cp -a Girocco jobd taskd fixupd gitweb html jobs toolbox hooks apache.conf shlib.sh "$cfg_basedir" +cp -pR Girocco jobd taskd fixupd gitweb html jobs toolbox hooks apache.conf shlib.sh "$cfg_basedir" # Put the correct Config in place [ "$GIROCCO_CONF" = "Girocco::Config" ] || cp "$(echo "$GIROCCO_CONF" | sed 's#::#/#g; s/$/.pm/')" "$cfg_basedir/Girocco/Config.pm" @@ -37,7 +37,7 @@ if [ -n "$cfg_push" -a "$cfg_permission_control" = "Group" ]; then echo "Creating FIFO for fixupd: $cfg_fixup_queue" [ -p "$cfg_fixup_queue" ] || mkfifo "$cfg_fixup_queue" chown "$cfg_cgi_user""$owngroup" "$cfg_fixup_queue" || - echo "WARNING: Cannot chown $cfg_cgi_user.$cfg_owning_group $cfg_fixup_queue" + echo "WARNING: Cannot chown $cfg_cgi_user$owngroup $cfg_fixup_queue" chmod ug+rw "$cfg_fixup_queue" || echo "WARNING: Cannot chmod $cfg_fixup_queue" echo "--- Remember to copy $cfg_basedir/fixupd/ to /root and start fixupd.sh as root" @@ -50,7 +50,7 @@ echo "*/30 * * * * /usr/bin/nice -n 18 $cfg_basedir/jobd/jobd.sh -q --all-once" echo "*** Setting up repository root..." mkdir -p "$cfg_reporoot" if [ "$cfg_owning_group" ]; then - chown ."$cfg_owning_group" "$cfg_reporoot" || echo "WARNING: Cannot chgrp $cfg_owning_group $cfg_reporoot" + chown :"$cfg_owning_group" "$cfg_reporoot" || echo "WARNING: Cannot chgrp $cfg_owning_group $cfg_reporoot" fi chmod a+rwx,g+s,o+t "$cfg_reporoot" || echo "WARNING: Cannot chmod $cfg_reporoot properly" @@ -69,7 +69,7 @@ echo "*** Setting up jail configuration (project database)..." mkdir -p "$cfg_chroot" "$cfg_chroot/etc" touch "$cfg_chroot/etc/passwd" "$cfg_chroot/etc/group" chown "$cfg_cgi_user""$owngroup" "$cfg_chroot/etc" || - echo "WARNING: Cannot chown $cfg_cgi_user.$cfg_owning_group the files" + echo "WARNING: Cannot chown $cfg_cgi_user$owngroup the files" chmod 02775 "$cfg_chroot/etc" || echo "WARNING: Cannot chmod 02775 $cfg_chroot/etc" diff --git a/jailsetup.sh b/jailsetup.sh index d679d07..4b2fa3f 100755 --- a/jailsetup.sh +++ b/jailsetup.sh @@ -61,7 +61,7 @@ chmod 0 var/run/mob # Set up sshd configuration: mkdir -p var/run/sshd mkdir -p etc/sshkeys -chown $cfg_cgi_user.$cfg_owning_group etc/sshkeys +chown $cfg_cgi_user:$cfg_owning_group etc/sshkeys chmod g+ws etc/sshkeys mkdir -p etc/ssh if [ ! -s etc/ssh/sshd_config ]; then -- 2.11.4.GIT