#!/bin/bash
. /etc/sysconfig/autoport
NUM=`echo "$QUERY_STRING" | sed -n 's/^.*NUM=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
SECONDARY=`echo "$QUERY_STRING" | sed -n 's/^.*SECONDARY=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
AS_SECONDARY=`echo "$QUERY_STRING" | sed -n 's/^.*AS_SECONDARY=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
SHOWLOG=`echo "$QUERY_STRING" | sed -n 's/^.*SHOWLOG=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
SHOWINDEX=`echo "$QUERY_STRING" | sed -n 's/^.*SHOWINDEX=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
LINES=`echo "$QUERY_STRING" | sed -n 's/^.*LINES=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
[ "$LINES" ] || LINES=5
[ "$AS_SECONDARY" ] && SECONDARY_ADD="&SECONDARY=1"
echo -e "Content-type: text/html; charset=UTF-8\n\n"
[ ! "$AS_SECONDARY" ] && echo "Show: ALL "
[ "$SHOWINDEX" -o ! "$AS_SECONDARY" ] && \
for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
[ "${AUTOPORT_ARCH[$i]}" ] || continue
[ "${AUTOPORT_DISABLE[$i]}" -a "${AUTOPORT_DISABLE[$i]}" != "0" ] && continue
if [ "${AUTOPORT_UPDATE[$i]}" ]; then
echo "${AUTOPORT_REPOSITORIES[$i]}(${AUTOPORT_ARCH[$i]}) "
elif [ "${AUTOPORT_CHROOT[$i]}" ]; then
echo "${AUTOPORT_REPOSITORIES[$i]}(${AUTOPORT_ARCH[$i]}) "
elif [ "${AUTOPORT_NATIVE[$i]}" ]; then
echo "${AUTOPORT_REPOSITORIES[$i]}(${AUTOPORT_ARCH[$i]}) "
elif [ "${AUTOPORT_CROSS[$i]}" ]; then
echo "${AUTOPORT_REPOSITORIES[$i]}(${AUTOPORT_CROSS[$i]};${AUTOPORT_ARCH[$i]}) "
fi
done
if [ "$SHOWINDEX" ]; then
exit 0
else
curl "$AUTOPORT_CGI_SECONDARY?AS_SECONDARY=1&SHOWINDEX=1"
fi
[ ! "$AS_SECONDARY" ] && echo "
"
[ ! "$SHOWLOG" -a "$SECONDARY" = "$AS_SECONDARY" ] && echo "
"
if [ "$SHOWLOG" = "current" ]; then
cat $LOGFILE | sed "s|<|\<|g"
elif [ "$SHOWLOG" = "last" ]; then
cat $LASTLOGFILE | sed "s|<|\<|g"
else
if [ "${AUTOPORT_CHROOT[$i]}" ]; then
BUILDLOGFILE="/var/autoport/${AUTOPORT_CHROOT[$i]}/home/${AUTOPORT_CHROOT_USER[$i]}/.autodist/log/$SHOWLOG"
elif [ "${AUTOPORT_NATIVE[$i]}" -o "${AUTOPORT_UPDATE[$i]}" ]; then
BUILDLOGFILE="/var/autodist/log/$SHOWLOG"
fi
[ -e $BUILDLOGFILE ] && cat $BUILDLOGFILE | sed "s|<|\<|g"
fi
echo "
"
else
curl "$AUTOPORT_CGI_SECONDARY?AS_SECONDARY=1&SHOWLOG=$SHOWLOG&NUM=$i&LOG=$LOG"
fi
exit 0
elif [ ! "$SHOWLOG" ]; then
[[ "$NUM" && "$NUM" != "$i" ]] && continue
[[ "$SECONDARY" = "$AS_SECONDARY" ]] || continue
if [ "${AUTOPORT_UPDATE[$i]}" ]; then
echo "* ${AUTOPORT_REPOSITORIES[$i]}(${AUTOPORT_ARCH[$i]}) (type:autodist update)"
echo " [ log last ]"
fi
if [ "${AUTOPORT_CHROOT[$i]}" ]; then
echo "* ${AUTOPORT_REPOSITORIES[$i]}(${AUTOPORT_ARCH[$i]}) (type:chroot autoport chroot:${AUTOPORT_CHROOT[$i]})"
echo " [ log last ]"
fi
if [ "${AUTOPORT_NATIVE[$i]}" ]; then
echo "* ${AUTOPORT_REPOSITORIES[$i]}(${AUTOPORT_ARCH[$i]}) (type:native autoport)"
echo " [ log last ]"
fi
if [ "${AUTOPORT_CROSS[$i]}" ]; then
echo "* cross-platform autoport (arch:${AUTOPORT_CROSS[$i]})"
echo " [ last ]"
fi
echo "" if [ "${AUTOPORT_UPDATE[$i]}" ]; then unset STARTTIME ENDTIME JOBON BUILDNOW BUILDLOG SCHEDULED BUILDNOWIDX=0 while read line; do set -- $line if [[ "${line:0:1}" = $'\r' ]]; then PREF=`echo $1 | tr -d "\r"` else PREF=$1 fi case $PREF in "%%" ) if [ "$2 $3" == "Autodist started" ]; then STARTTIME=`echo $line | sed "s|.* @ ||"` elif [ "$2 $3 $4" == "All jobs done" ]; then ENDTIME=`echo $line | sed "s|.* @ ||"` elif [ "$2 $3" == "autoupdate jobs:" ]; then SCHEDULED=`echo $line | sed "s|.*autoupdate jobs: ||"` elif [ "$2" == "Doing" ]; then BUILDNOW[$BUILDNOWIDX]="$3" BUILDNOWIDX=`expr $BUILDNOWIDX + 1` #elif [ "$2" != "Starting" -a "$2" != "Updating" ]; then # [ "$JOBON" ] || echo $line fi ;; "?=") if [ "$2" == "See" ]; then BUILDLOG[$BUILDNOWIDX-1]=`echo $line | sed "s|.*autodist/log/||"` fi ;; "=>") JOBON=1 ;; "%!"|"!!") BUILDNOW[$BUILDNOWIDX-1]="${BUILDNOW[$BUILDNOWIDX-1]} $line"; JOBON= ;; "==") [ "${2:0:2}" == "==" ] && JOBON= ;; "Hunk"|"") ;; *) [ "$JOBON" ] || { line=`echo $line | sed "s|.*\r||"` echo $line } ;; esac done < $LOGFILE else unset STARTTIME ENDTIME BUILDNOW BUILDLOG AUTODISTON LASTLINE SCHEDULED while read line; do line=`echo $line | sed "s|.*\r||"` set -- $line case $1 in "%%" ) AUTODISTON=1 ;; "^"|"="*|""|"!"|"|"|"#"|"->") ;; #comment "+") [ "$STARTTIME" ] || STARTTIME=`echo $line | sed "s|.*start at ||"` ;; "-") ENDTIME=`echo $line | sed "s|.*end at ||"` ;; [A-Za-z0-9]*) ;; ">") [ "$SCHEDULED" ] || SCHEDULED=`echo $line | sed "s|.*Scheduled jobs: ||"` ;; *) [ ! "$AUTODISTON" ] && echo $line ;; esac done < $LOGFILE BUILDNOWIDX=0 while read line; do line=`echo $line | sed "s|.*\r||"` set -- $line case $1 in "%%" ) if [ "$2" == "Doing" ]; then if [ "$3" != "${BUILDNOW[$BUILDNOWIDX-1]}" ]; then BUILDNOW[$BUILDNOWIDX]="$3" BUILDNOWIDX=`expr $BUILDNOWIDX + 1` fi JOBON=1 fi ;; "?=") if [ "$2" == "See" ]; then BUILDLOG[$BUILDNOWIDX-1]=`echo $line | sed "s|.*autodist/log/||"` fi ;; "=>") JOBON=1 ;; "%!"|"!!") BUILDNOW[$BUILDNOWIDX-1]="${BUILDNOW[$BUILDNOWIDX-1]} $line"; JOBON= ;; "==") [ "${2:0:2}" == "==" ] && JOBON= ;; "Hunk"|"") ;; *) [ "$JOBON" ] || echo $line ;; esac done < $AUTODISTLOGFILE LASTLINE=$line fi echo "Start: $STARTTIME" echo "Scheduled jobs: $SCHEDULED" for b in `seq 1 ${#BUILDNOW[*]}`; do set -- ${BUILDNOW[$b-1]} if [ "${BUILDLOG[$b-1]}" ]; then echo "$1: $2 $3 $4 $5 $6 " else echo "$1: $2 $3 $4 $5 $6 " fi done if [ "$LASTLINE" ]; then set -- $LASTLINE [ "$1" = "^" ] && echo "${2} ${3} ${4} ${5} ${6} ${7}" fi [ "$ENDTIME" ] && echo "End: $ENDTIME" || echo "End: in progress" echo # grep -v "^=" $LOGFILE | tail -n "$LINES" | sed "s|.*\r||" # echo echo "" fi done if [ "$AUTOPORT_CGI_SECONDARY" -a ! "$SHOWLOG" ]; then if [ "$NUM" -a "$SECONDARY" ]; then curl "$AUTOPORT_CGI_SECONDARY?AS_SECONDARY=1&LINES=$LINES&NUM=$NUM&SECONDARY=$SECONDARY" elif [ ! "$NUM" ]; then curl "$AUTOPORT_CGI_SECONDARY?AS_SECONDARY=1&LINES=$LINES" fi fi