]> git.pld-linux.org Git - projects/buildlogs.git/blob - helpers/buildlogs-mover.sh
Silence php notices.
[projects/buildlogs.git] / helpers / buildlogs-mover.sh
1 #!/bin/sh
2 #
3 # Script to be run from crontab on buildlogs host.
4 # Moves buildlogs around.
5 #
6 # Expected directory structure:
7 #
8 # root/$(dist)/$(arch)/
9 #   .new/
10 #   OK/
11 #   FAIL/
12 #
13 # Note that we look for root/*/*/.new/*.info, so don't place any additional
14 # directories there.
15
16 root="/home/services/ftpd/buildlogs"
17 ADDLOG="/home/services/httpd/html/pld-buildlogs/scripts/addlog.php"
18
19 if test -f /etc/buildlogs-mover.conf ; then
20   . /etc/buildlogs-mover.conf
21 fi
22
23 for n in $root/*/*/.new ; do
24   if test ! -d $n ; then
25     echo "$n doesn't exists or ain't directory"
26     exit 1
27   fi
28   break # don't check all
29 done
30
31 handle_info () {
32   info="$1"
33   info_val="$(cat "$info" 2>/dev/null)"
34   if echo "$info_val" | grep -q '^END$' ; then
35     status=$(echo "$info_val" | grep '^Status:' | sed -e 's/.*: *//')
36     case $status in
37       OK ) s=OK ;;
38       FAIL* ) s=FAIL ;;
39       * )
40         # this script is run from cron, so this should go through mail 
41         # to admin
42         echo "bad buildlog status: $status in $info:" 1>&2
43         echo "#v+" 1>&2
44         echo "$info_val" 1>&2
45         echo "#v-" 1>&2
46         rm "$info" 2>/dev/null
47         return
48         ;;
49     esac
50     archdir="$(dirname "$(dirname "$info")")"
51     file=$(basename "$info" .info)
52     if test -f "$archdir/.new/$file"; then
53             mv -f "$archdir/.new/$file" "$archdir/$s/$file"
54             $ADDLOG "$archdir/$s/$file"
55             rm "$info" 2>/dev/null
56     fi
57   fi
58 }
59
60 for info in $root/*/*/.new/*.info ; do
61   if test -f "$info" ; then
62     handle_info "$info"
63   fi
64 done
This page took 0.07934 seconds and 3 git commands to generate.