summaryrefslogtreecommitdiff
path: root/bin/filter-build-logs
blob: c139f9bddaf7f0af2ddcd93d1ce4eb5bc446a0cc (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
51
52
53
54
55
56
57
58
59
60
#!/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>' \
    '&nbsp;' \
    '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 /
      s/^./\0 /
    ' | \
    sort -u | \
    sort -k2,2 -k3,3 -k1,1 -k4 | \
    while read -r a b c d; do
      c="${c%:}"
      if [ "${c}" = 'E' ]; then
        color='FF'
      else
        color='80'
      fi
      case "${a}" in
        '+')
          color="${color}0000"
        ;;
        '-')
          color="00${color}00"
        ;;
        *)
          color="0000${color}"
      esac
      printf '<tr>'
      printf '<td><font color="#'"${color}"'">%s</font></td>' \
        "${a}" "${b}" "${c}" "${d}"
      printf '</tr>\n'
    done
  printf '%s\n' \
    '</table>' \
    '</body>' \
    '</html>'
} > \
  "${webserver_directory}/namcap-outputs.html"