Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Dec 2012 15:17:53 +0000 (UTC)
From:      Mark Linimon <linimon@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r244219 - projects/portbuild/scripts
Message-ID:  <201212141517.qBEFHrhb085430@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: linimon (doc,ports committer)
Date: Fri Dec 14 15:17:53 2012
New Revision: 244219
URL: http://svnweb.freebsd.org/changeset/base/244219

Log:
  Parameterize uid.  Rip out special hard-coding of ports-<arch>.

Modified:
  projects/portbuild/scripts/allgohans

Modified: projects/portbuild/scripts/allgohans
==============================================================================
--- projects/portbuild/scripts/allgohans	Fri Dec 14 15:12:08 2012	(r244218)
+++ projects/portbuild/scripts/allgohans	Fri Dec 14 15:17:53 2012	(r244219)
@@ -5,6 +5,17 @@ pbd=${PORTBUILD_DATA:-/var/portbuild}
 
 . ${pbc}/conf/server.conf
 
+if [ ! -z "${PORTBUILD_USER}" ]; then
+    uid=${PORTBUILD_USER}
+else
+    uid=ports-${arch}
+fi
+if [ ! -z "${PORTBUILD_GROUP}" ]; then
+    gid=${PORTBUILD_GROUP}
+else
+    gid=${uid}
+fi
+
 doarch() {
     arch=$1
     shift
@@ -31,29 +42,26 @@ doarch() {
 	    # If we need to scp first, the command given in the parameters is the local
 	    # path, which we need to upload first. The command will return the remote
 	    # temporary file, which we can subsequently execute. So this isn't really scp.
-	    cmdpath=$(su ports-${arch} -c "cat ${cmd} | ${ssh_cmd} ${client_user}@$i 't=\$(mktemp -t ${cmd##*/}); cat >\$t; echo \$t; chmod 755 \$t'")
+	    cmdpath=$(su ${uid} -c "cat ${cmd} | ${ssh_cmd} ${client_user}@$i 't=\$(mktemp -t ${cmd##*/}); cat >\$t; echo \$t; chmod 755 \$t'")
 	    case ${cmdpath} in /tmp/*) ;; *) echo "Failed to scp ${cmd} to $i."; return 1;; esac
 	fi
-	lockf -t 60 ${pbd}/${arch}/lockfiles/lock.$i su ports-${arch} -c "${ssh_cmd} ${client_user}@$i ${sudo_cmd} ${cmdpath} $@"
+	lockf -t 60 ${pbd}/${arch}/lockfiles/lock.$i su ${uid} -c "${ssh_cmd} ${client_user}@$i ${sudo_cmd} ${cmdpath} $@"
 	result=$?
 	if [ $result -ne 0 ]; then
 	    echo "could not execute command ${cmdpath} $@ on $i: $result"
 	fi
 	if [ ${scpfirst} -ne 0 ]; then
-	    su ports-${arch} -c "${ssh_cmd} ${client_user}@$i 'rm -f ${cmdpath}'"
+	    su ${uid} -c "${ssh_cmd} ${client_user}@$i 'rm -f ${cmdpath}'"
 	fi
     done
 }
 
-id=$(whoami)
-if [ "${id}" = "root" ]; then
-	arch=$1
-	shift
-	root=1
-else
-	arch=$(echo $id | sed s,ports-,,)
-	root=0
+arch=$1
+if [ -z "${arch}" ]; then
+	echo "usage: $0 <arch> [-q] [-scp]"
+	exit 1
 fi
+shift
 
 # XXX - Have to convert this to getopt().
 if [ "$1" = "-q" ]; then



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201212141517.qBEFHrhb085430>