#!/bin/sh # SPDX-FileCopyrightText: (C) 2025 Coherent Logic Development LLC # SPDX-FileCopyrightText: (C) 2025 Serena Willis # # SPDX-License-Identifier: AGPL-3.0 # # BuildMan 0.0.1 # Distributed CI/CD system with portability to older UNIX systems # # install - buildman installer # # Copyright (C) 2025 Coherent Logic Development LLC # # Author: Serena Willis # PROGN=`basename $0` #if [ "$UID" != "0" ] #then # echo "$PROGN error: must run as root" # exit 1 #fi TARGET="client" TUSER="build:6000" TGROUP="build:6000" BUILDMAN_MASTER="" INSTALL_BASE="/usr/local/bin" 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}" 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" 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` 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 750 bm "${INSTALL_BASE}/bm" install -o ${T_UID} -g ${T_GID} -m 750 bma "${INSTALL_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}"