--- buildman/bm	2025/01/21 20:52:51	1.3
+++ buildman/bm	2025/03/10 17:17:29	1.9
@@ -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"
+                    continue
+                fi
+                
+                BUILD_WANTED="${PROJECT_BASE}/hosts/${BUILD_HOST}/build-wanted"
+                
+                if [ -f "${BUILD_WANTED}" ]
+                then
+                    echo "$PROGN error:  build already requested on ${BUILD_HOST}"
+                    continue
+                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