]> git.ipfire.org Git - ipfire-3.x.git/blobdiff - tools/make-buildspy
Added new package: dosfstools.
[ipfire-3.x.git] / tools / make-buildspy
old mode 100644 (file)
new mode 100755 (executable)
index 0fb4548..0a78507
 #                                                                             #
 ###############################################################################
 
+BUILD_SPY_FILENAME=$BASEDIR/.build_spy
+BUILD_SPY_PID=$BUILD_SPY_FILENAME.pid
+
 build_spy() {
-       ## Do nothing if UUID is not set
-       [ -z "${UUID}" ] && return
-
-       ACTION=$1; KEY=$2; shift 2
-       VAL="$*"
-
-       DATA="uuid=${UUID}&action=${ACTION}"
-       if [ "${ACTION}" == "set" ]; then
-               DATA+="&key=${KEY}&val=\"${VAL}\""
-       elif [ "${ACTION}" == "error" ]; then
-               ## if we send an error we append
-               #  the last 10 lines of $LOGFILE
-               LOG=$(tail -n 10 ${LOGFILE})
-               DATA+="&log=${LOG}"
+       local COMMAND
+       COMMAND=$1
+       shift 1
+       if [ "$COMMAND" = "start" ]; then
+               BASEDIR=$BASEDIR UUID=$UUID NAME=$NAME VERSION=$VERSION \
+               LOGFILE="$BASEDIR/log_${TARGET}/_build.00-buildspy.log" \
+               $BASEDIR/tools/make-buildspy &
+       elif [ "$COMMAND" = "exit" ]; then
+               echo -n "BUILDSPY_EXIT " >> $BUILD_SPY_FILENAME
+       else
+               echo -n "${COMMAND}=$* " >> $BUILD_SPY_FILENAME
        fi
-
-       wget -q -O /dev/null --user-agent="${NAME}BuildSpy/${VERSION}" \
-               --post-data="${DATA}" \
-               http://build.ipfire.org/build.py
 }
 
 build_spy_send_profile() {
-       MEM_SIZE=$[ $(grep "^MemTotal:" /proc/meminfo | awk '{ print $2 }') * 1024 ]
-
-       CPU_CNT=$(grep "^processor" < /proc/cpuinfo | wc -l)
-       CPU_MHZ=$(grep "^cpu MHz" --max-count=1 /proc/cpuinfo | \
-                       awk -F': ' '{ print $2 }')
-       CPU_MIPS=$[ $(grep "^bogomips" --max-count=1 /proc/cpuinfo | \
-                       awk '{ print $3 }' | awk -F. '{ print $1 }') * ${CPU_CNT} ]
-       CPU_NAME=$(grep "^model name" --max-count=1 /proc/cpuinfo | \
-                       awk -F': ' '{ print $2 }')
-
-       build_spy set hostname $(hostname -f || hostname)
-       build_spy set cpu_mhz  $CPU_MHZ
-       build_spy set cpu_cnt  $CPU_CNT
-       build_spy set cpu_mips $CPU_MIPS
-       build_spy set cpu_name $CPU_NAME
-       build_spy set mem_size $MEM_SIZE
-       build_spy set distcc   ${DISTCC_PORT-3632}
+       build_spy target   ${TARGET}
+       build_spy hostname ${HOSTNAME}
+       build_spy distcc   ${DISTCC_PORT-3632}
+       build_spy jobs     ${DISTCC_JOBS}
+       build_spy cpu      $(grep ^model\ name /proc/cpuinfo | head -n1 | \
+               awk -F: '{ print $2 }' | $BASEDIR/tools/base64)
+       build_spy machine  $(uname -m)
+       build_spy toolchain "${NAME}-${TOOLCHAINVERSION}"
 }
+
+if [ "$(basename $0)" == "make-buildspy" ]; then
+       if [ -f "$BUILD_SPY_PID" ]; then
+               exit 0
+       fi
+       echo $$ > $BUILD_SPY_PID
+
+       while true; do
+               DATA+=$(cat $BUILD_SPY_FILENAME 2>/dev/null || true)
+               > $BUILD_SPY_FILENAME
+
+               for command in $DATA; do
+                       if [ "$command" = "BUILDSPY_EXIT" ]; then
+                               BUILDSPY_EXIT=1
+                               break
+                       fi
+               done
+
+               if [ -n "$DATA" ] && \
+                       $BASEDIR/tools/buildspy \
+                               action=set uuid=$UUID $DATA >> $LOGFILE 2>&1; then
+                       DATA=""
+               fi
+
+               if [ "$BUILDSPY_EXIT" = "1" ]; then
+                       break
+               fi
+
+               sleep 10
+       done
+       rm -f $BUILD_SPY_FILENAME $BUILD_SPY_PID
+fi