summaryrefslogtreecommitdiff
path: root/bin/filter-build-logs
blob: 48f9aeb6f6674f7ad72d8285c2036a86fc9c042e (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
#!/bin/sh

# filter content of build-logs for display on the webserver

# shellcheck source=conf/default.conf
. "${0%/*}/../conf/default.conf"

{
  printf '%s\n' \
    '<html>' \
    '<head>' \
    '<title>Output of namcap of successful builds</title>' \
    '<link rel="stylesheet" type="text/css" href="/static/style.css">' \
    '</head>' \
    '<body>' \
    '<table>'
  printf '<tr>'
  printf '<th>%s</th>' \
    'package' \
    'type' \
    'message'
  printf '</tr>\n'
  find "${build_log_directory}/success" -maxdepth 1 -name '*.pkg.tar.xz-namcap.log.gz' -execdir zcat {} \; | \
    sed '
      /^Checking \(PKGBUILD\|\S\+\(-[^-]\+\)\{3\}\.pkg\.tar\.xz\)$/d
      / on your system is a testing release$/d
      s/^PKGBUILD\s\+(\([^) ]\+\))\s\+/\1 /
    ' | \
    sort -u | \
    while read -r a b c; do
      b="${b%:}"
      if [ "${b}" = 'E' ]; then
        left='<font color="red">'
        right='</font>'
      else
        unset left
        unset right
      fi
      printf '<tr>'
      printf '<td>%s</td>' \
        "${left}${a}${right}" "${left}${b}${right}" "${left}${c}${right}"
      printf '</tr>\n'
    done
  printf '%s\n' \
    '</table>' \
    '</body>' \
    '</html>'
} > \
  "${webserver_directory}/namcap-outputs.html"