--- buildman/bm 2025/01/21 20:52:51 1.3 +++ buildman/bm 2025/03/10 17:14:32 1.7 @@ -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,6 +108,12 @@ do esac done +if [ "${ACTION}" = "" ] +then + echo "${PROGN}: no action specified" + exit 1 +fi + if [ ! -z "${PROJECT}" ] then PROJECT_BASE="${BUILDMAN_BASE}/projects/${PROJECT}" @@ -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,7 +211,7 @@ 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` @@ -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 on host ${BUILD_HOST}" + 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}" + 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 on ${BUILD_HOST}" + 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 ${BUILD_HOST}" ;; esac