blob: 8e67bec21a271e017d8707655587ec05de0841fc (
plain)
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
|
#!/bin/sh
error () {
echo >&2 "error: $@"
exit 1
}
find_embedded_trash () {
while read -r line
do
case "$line" in
*Start\ of\ trash\ directory\ of\ \'t[0-9][0-9][0-9][0-9]-*\':*)
test_name="${line#*\'}"
test_name="${test_name%\'*}"
return 0
esac
done
return 1
}
extract_embedded_trash () {
while read -r line
do
case "$line" in
*End\ of\ trash\ directory\ of\ \'$test_name\'*)
return
;;
*)
printf '%s\n' "$line"
;;
esac
done
error "unexpected end of input"
}
# Raw logs from Linux build jobs have CRLF line endings, while OSX
# build jobs mostly have CRCRLF, except an odd line every now and
# then that has CRCRCRLF. 'base64 -d' from 'coreutils' doesn't like
# CRs and complains about "invalid input", so remove all CRs at the
# end of lines.
sed -e 's/\r*$//' | \
while find_embedded_trash
do
echo "Extracting trash directory of '$test_name'"
extract_embedded_trash |base64 -d |tar xzp
done
|