--- buildman/install 2025/01/21 17:36:51 1.1 +++ buildman/install 2025/03/12 02:31:46 1.12 @@ -18,22 +18,111 @@ PROGN=`basename $0` -if [ $EUID -ne 0 ] -then - echo "$PROGN error: must run as root" - exit 1 -fi +#if [ "$UID" != "0" ] +#then +# echo "$PROGN error: must run as root" +# exit 1 +#fi TARGET="client" TUSER="build:6000" TGROUP="build:6000" -BUILDMAN_BASE="/home/build" BUILDMAN_MASTER="" +INSTALL_BASE="/usr/local" + +OS=`uname` + +if [ "$OS" = "SCO_SV" ] ; then + THOST=`hostname -s` + PATH=/usr/gnu/bin:$PATH + export PATH +else + if [ "$OS" = "SunOS" ] ; then + THOST=`hostname` + else + THOST=`hostname -s` + fi +fi + +tmphost=`echo ${THOST} | cut -d. -f1` +THOST="${tmphost}" -while getopts ':t:u:g:b:m:' OPTION +if [ "$OS" = "SunOS" ] +then + BUILDMAN_BASE="/export/home/build" +else + BUILDMAN_BASE="/home/build" +fi + +while getopts ':t:u:g:b:m:i:h' OPTION do case $OPTION in + + i) + INSTALL_BASE="${OPTARG}" + ;; + + u) + TUSER="${OPTARG}" + ;; + + g) + TGROUP="${OPTARG}" + ;; + b) + BUILDMAN_BASE="${OPTARG}" + ;; + m) + BUILDMAN_MASTER="${OPTARG}" + ;; + + h) + echo "" + echo "BuildMan Installer" + echo " Copyright (C) 2025 Coherent Logic Development LLC" + echo "" + echo "" + echo "usage: ${PROGN} [-i ] [-b ] [-u ] [-g ] [-m " + echo " is the directory in which buildman will be installed" + echo " is the directory in which buildman will operate" + echo " is the username owning the files for buildman" + echo " is the numeric UID of the owner of the buildman files" + echo " is the group name owning the files for buildman" + echo " is the numeric GID of the group owning the buildman files" + echo " is the primary buildman host, supplied as IP address or FQDN" + echo "" + exit 0 + ;; esac done + +T_LOGIN=`echo ${TUSER} | cut -d: -f1` +T_UID=`echo ${TUSER} | cut -d: -f2` +T_GRPNAM=`echo ${TGROUP} | cut -d: -f1` +T_GID=`echo ${TGROUP} | cut -d: -f2` + +BIN_BASE="${INSTALL_BASE}/bin" + +if [ ! -d "${BIN_BASE}" ] +then + mkdir -p "${BIN_BASE}" +fi + +groupadd -g ${T_GID} ${T_GRPNAM} +useradd -u ${T_UID} -g ${T_GRPNAM} -c "BuildMan" -m -d "${BUILDMAN_BASE}" "${T_LOGIN}" + +install -o ${T_UID} -g ${T_GID} -m 755 bm "${BIN_BASE}/bm" +install -o ${T_UID} -g ${T_GID} -m 755 bma "${BIN_BASE}/bma" + +DEF="/etc/default/bm" + + +echo "BUILDMAN_BASE=${BUILDMAN_BASE}" > "${DEF}" +echo "BUILDMAN_USER=${T_LOGIN}" >> "${DEF}" +echo "BUILDMAN_GROUP=${T_GRPNAM}" >> "${DEF}" +echo "BUILDMAN_UID=${T_UID}" >> "${DEF}" +echo "BUILDMAN_GID=${T_GID}" >> "${DEF}" +echo "BUILDMAN_MASTER=${BUILDMAN_MASTER}" >> "${DEF}" +