]> git.pld-linux.org Git - projects/buildlogs.git/blame_incremental - helpers/buildlogs-mover.sh
Silence php notices.
[projects/buildlogs.git] / helpers / buildlogs-mover.sh
... / ...
CommitLineData
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
16root="/home/services/ftpd/buildlogs"
17ADDLOG="/home/services/httpd/html/pld-buildlogs/scripts/addlog.php"
18
19if test -f /etc/buildlogs-mover.conf ; then
20 . /etc/buildlogs-mover.conf
21fi
22
23for 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
29done
30
31handle_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
60for info in $root/*/*/.new/*.info ; do
61 if test -f "$info" ; then
62 handle_info "$info"
63 fi
64done
This page took 0.067321 seconds and 4 git commands to generate.