File: run-dbuild

package info (click to toggle)
dbuild 1.11
  • links: PTS
  • area: main
  • in suites: slink
  • size: 48 kB
  • ctags: 12
  • sloc: sh: 448; makefile: 29
file content (103 lines) | stat: -rwxr-xr-x 2,431 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/bin/sh
#
# This script runs dbuild on a Debian source mirror and makes the failed
# build logs available on the web.
#
# Lars Wirzenius <liw@iki.fi>

set -e

[ -z "$DBUILD" ] && DBUILD="dbuild -V -v -a -s"

echo "Running $DBUILD..."
$DBUILD "$@"
rm -f OK/*.deb

echo "Building logs..."
rm -rf logs-failed
mkdir logs-failed
for dir in FAILED IGNORED
do
	if ls $dir | grep messages > /dev/null
	then
		ln $dir/*.messages logs-failed
	fi
	if ls $dir | grep '\.note$' > /dev/null
	then
		ln $dir/*.note logs-failed
	fi
done

nfailed=`ls logs-failed | wc -l`
nok=`ls OK | wc -l`

for dir in a b c d e f g h i j k l m n o p q r s t u v w x y z
do
	if ls logs-failed | grep "^$dir.*messages\$" >/dev/null
	then
		mkdir -p logs-failed/$dir
		mv logs-failed/$dir*.messages logs-failed/$dir
	fi
	if ls logs-failed | grep "^$dir.*note\$" >/dev/null
	then
		mkdir -p logs-failed/$dir
		mv logs-failed/$dir*.note logs-failed/$dir
	fi
done
if ls logs-failed | grep messages > /dev/null
then
	mkdir -p logs-failed/Other
	mv logs-failed/*.messages logs-failed/Other
fi
if ls logs-failed | grep note > /dev/null
then
	mkdir -p logs-failed/Other
	mv logs-failed/*.note logs-failed/Other
fi

dirs_html=""
for dir in `cd logs-failed; echo */`
do
	dir=`echo $dir | tr -d /`
	if [ ! -z "$dirs_html" ]
	then
		dirs_html="$dirs_html, "
	fi
	dirs_html="$dirs_html <a href=\"$dir/index.html\">$dir</a>"
done
dirs_html="$dirs_html."

dpkg --list > logs-failed/packages-installed.txt
sed "s#DIRSHTML#$dirs_html#;s#DATE#`date -R`#;s#NFAILED#$nfailed#;s#NOK#$nok#;s#ARCH#`dpkg --print-architecture`#g" /usr/lib/dbuild/index.html > logs-failed/index.html
chmod -R go=u,go-w logs-failed

for dir in logs-failed/*/
do
	out=$dir/index.html
	rm -f $out
	echo "<html><head><title>dbuild failed logs</title></head>" >>$out
	echo "<body><h1>Packages beginning with `basename $dir`</h1>" >>$out
	echo "<ul>" >>$out
	for file in $dir/*.messages
	do
		base=`basename $file .messages`
		note=$dir/$base.note
		pkg=`echo $base | sed 's/_.*//'`
		ver=`echo $base | sed 's/.*_//'`
		echo "<li><a href=\"$base.messages\">$pkg</a> $ver" >>$out
		if [ -e $note ]
		then
			echo "<blockquote><pre>" >>$out
			sed 's/^/    /' $note >> $out
			echo "</pre></blockquote>" >>$out
		fi
	done
	echo "</ul></body></html>" >>$out
done


# echo "Publishing logs..."
# ssh eros rm -rf public_html/debian/dbuild-logs
# scp -r logs-failed eros:public_html/debian/dbuild-logs

echo "Done."