summaryrefslogtreecommitdiff
path: root/sanity-check
blob: 401b8779cbe70b3470dbcd38369ac1a96ab2d894 (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
#!/bin/bash

inhalt="$(
  for s in $(\
    curl crux.eckner.net/REPO 2> /dev/null | \
      grep '\.footprint$' | \
      cut -d: -f3\
  )
  do
    curl crux.eckner.net/$s 2> /dev/null | \
      awk '{print $3}' | \
      sed "s|^|${s%/*}: |"
  done
)"

declare -A ausnahmen

ausnahmen['opt/']='$'
ausnahmen['usr/doc/']='$'
ausnahmen['usr/man/']='$'
ausnahmen['usr/share/']='usr/share/\(man/\|aclocal\|\2\|\3\|$\)'

err=0

for darfNicht in "${!ausnahmen[@]}"
do
  curError="$(
    echo "${inhalt}" | \
      grep "^[^:]\+: ${darfNicht}" | \
      grep -v "^\(\([^:]\+\)-\)\?\([^:-]\+\): ${ausnahmen["${darfNicht}"]}" | \
      sed 's|^\([^:]\+: '"${darfNicht}"'[^/]\+/\).*$|\1|' | \
      uniq
  )"

  if [ -n "${curError}" ]
  then
    >&2 echo 'Port beinhaltet Dateien in "'"${darfNicht}"'":'
    >&2 echo "${curError}"
    err=1
  fi
done

exit ${err}