--- buildman/bm 2025/01/21 15:54:01 1.1.1.2 +++ buildman/bm 2025/03/10 17:08:20 1.6 @@ -44,11 +44,11 @@ then exit 1 fi -if [ $EUID -ne ${BUILDMAN_UID} ] -then - echo "${PROGN} error: must be run as user \"${BUILDMAN_USER}\"" - exit 1 -fi +#if [ $EUID -ne ${BUILDMAN_UID} ] +#then +# echo "${PROGN} error: must be run as user \"${BUILDMAN_USER}\"" +# exit 1 +#fi ACTION="" PROJECT="" @@ -108,10 +108,16 @@ do esac done +if [ "${ACTION}" = "" ] +then + echo "${PROGN}: no action specified" + exit 1 +fi + if [ ! -z "${PROJECT}" ] then PROJECT_BASE="${BUILDMAN_BASE}/projects/${PROJECT}" - if [ "${ACTION}" == "add" -a ! -d ${PROJECT_BASE} ] + if [ "${ACTION}" = "add" -a ! -d ${PROJECT_BASE} ] then echo "$PROGN: creating ${PROJECT} in ${PROJECT_BASE}..." mkdir -p "${PROJECT_BASE}" @@ -119,7 +125,7 @@ then if [ ! -d "${PROJECT_BASE}" ] then - echo "$PROGN error: project ${PROJECT} not defined" + echo "$PROGN error: project ${PROJECT} not defined [${PROJECT_BASE}]" exit 1 fi fi @@ -134,7 +140,11 @@ case $ACTION in ;; h|hosts) - ls -l "${BUILDMAN_BASE}/projects/${PROJECT}/hosts" + BHOSTS=`ls -1 "${BUILDMAN_BASE}/projects/${PROJECT}/hosts"` + for BHOST in ${BHOSTS} + do + echo ${BHOST} + done ;; *) @@ -201,12 +211,12 @@ case $ACTION in exit 1 fi - PLSTR="${BUILD_HOST}:${OPTIONS}" + PLSTR="${BUILD_HOST}:${OPTIONS}:buildman::" H_PLATFORM=`echo ${PLSTR} | cut -d: -f2` H_VERSION=`echo ${PLSTR} | cut -d: -f3` H_ARCH=`echo ${PLSTR} | cut -d: -f4` - if [ "${PYES}" == "no" ] + if [ "${PYES}" = "no" ] then echo echo "Host Details" @@ -221,7 +231,7 @@ case $ACTION in read -n 1 -p "OK to create? (y/n) " YORN echo - if [ "${YORN}" == "y" -o "${YORN}" == "Y" ] + if [ "${YORN}" = "y" -o "${YORN}" = "Y" ] then CONF=1 else @@ -259,24 +269,55 @@ case $ACTION in exit 1 fi - BUILD_BASE="${PROJECT_BASE}/hosts/${BUILD_HOST}" + if [ "${BUILD_HOST}" != '*' ] + then + BUILD_BASE="${PROJECT_BASE}/hosts/${BUILD_HOST}" + + if [ ! -d "${BUILD_BASE}" ] + then + echo "$PROGN error: build host ${BUILD_HOST} not configured" + exit 1 + fi + + BUILD_WANTED="${PROJECT_BASE}/hosts/${BUILD_HOST}/build-wanted" - if [ ! -d "${BUILD_BASE}" ] - then - echo "$PROGN error: build host ${BUILD_HOST} not configured" - exit 1 - fi - - BUILD_WANTED="${PROJECT_BASE}/hosts/${BUILD_HOST}/build-wanted" + if [ -f "${BUILD_WANTED}" ] + then + echo "$PROGN error: build already requested" + exit 1 + fi - if [ -f "${BUILD_WANTED}" ] - then - echo "$PROGN error: build already requested" - exit 1 + touch "${BUILD_WANTED}" + echo "$PROGN: build of project ${PROJECT} requested on build host ${BUILD_HOST}" + else + BHOSTS=`ls -1 "${BUILDMAN_BASE}/projects/${PROJECT}/hosts"` + for BUILD_HOST in ${BHOSTS} + do + BUILD_BASE="${PROJECT_BASE}/hosts/${BUILD_HOST}" + + if [ ! -d "${BUILD_BASE}" ] + then + echo "$PROGN error: build host ${BUILD_HOST} not configured" + exit 1 + fi + + BUILD_WANTED="${PROJECT_BASE}/hosts/${BUILD_HOST}/build-wanted" + + if [ -f "${BUILD_WANTED}" ] + then + echo "$PROGN error: build already requested" + exit 1 + fi + + touch "${BUILD_WANTED}" > /dev/null 2>&1 + if [ $? = 0 ] + then + echo "$PROGN: build of project ${PROJECT} requested on build host ${BUILD_HOST}" + else + echo "$PROGN: error requesting build of ${PROJECT} on build host ${BUILD_HOST}" + fi + done fi - - touch "${BUILD_WANTED}" - echo "$PROGN: build of project ${PROJECT} requested on build host ${HOST}" ;; esac