summaryrefslogtreecommitdiff
path: root/testeAbhaengigkeiten
blob: e76bd5da26a62474ad7c96d893132abb194cef1c (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
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/bin/bash

if [ $# -ne 1 ]; then
  >&2 echo "Verwendung: testeAbhaengigkeiten paket"
  exit 1
fi

paket="$1"
me="$(readlink -f "$0")"
cd "$(dirname "${me}")"

if [ ! -d "${paket}" ]; then
  >&2 printf 'Paket "%s" existiert nicht.\n' "${paket}"
  exit 1
fi

if [ "${paket#perl-}" != "${paket}" ]; then

  . perlFunktionen

  ladePkgbuild "${paket}" || exit $[$?-1]

  versteheMetaYml "${paket}" || exit $[$?-1]

elif [ "${paket#python-}" != "${paket}" ]; then

  if ( . "$1/PKGBUILD"; printf '%s\n' "${pkgname[@]}"; ) \
    | grep -qF 'python2-'; then
    . pythonFunktionen python2
  else
    . pythonFunktionen python
  fi

  ladePkgbuild "${paket}" || exit $[$?-1]

  versteheRequirements "${paket}" || exit $[$?-1]

else

  # not python-* or perl-* => nothing to do / yet to be implemented
  exit 0

fi

err=false

for wasAusgeben in "${!metaRegexe[@]}"; do
  probleme="$(
    (
      echo "${pkgBuild["${wasAusgeben}"]}"
      echo "${metaYml["${wasAusgeben}"]}"
    ) | \
      sort | \
      uniq -u \
  )"
  if [ -n "${probleme}" ]; then
    >&2 echo "${wasAusgeben} in ${paket}/PKGBUILD unterscheidet sich:"
    >&2 echo '-------------------------------------'
    >&2 echo "${metaYml["${wasAusgeben}"]}"
    >&2 echo '^^^ META.yml ^^^ vs. vvv PKGBUILD vvv'
    >&2 echo "${pkgBuild["${wasAusgeben}"]}"
    >&2 echo "====================================="
    >&2 echo "${probleme}"
    >&2 echo "====================================="
    err=true
  fi
done

if ${err}; then
  ersatz="$(
    for wasAusgeben in "${!metaRegexe[@]}"; do
      if [ -n "${metaYml["${wasAusgeben}"]}" ]; then
        echo "${wasAusgeben}=("
        echo "${metaYml["${wasAusgeben}"]})" | \
          sed "s|^\s*||; s|\s*\$||; s|^\(.*[^)]\)\()\?\)\$|  '\1'\2|"
      fi
    done | \
      sed ':begin;
        $!N;
        s@^\(.*\)\n\(.*\)$@\1\\n\2@;
        tbegin;
        P;
        D
      '
  )"

  >&2 echo 'neu könnte das etwa so aussehen:'
  >&2 echo '-------------------------------------'
  >&2 echo -e "${ersatz}"
  >&2 echo '-------------------------------------'
  read -p 'Ich würde das jetzt mal vollautomatisch verändern. Einwände? ' was
  if [ -n "${was}" ]; then
    exit 1
  fi
  sed '
    :begin;
      $!N;
      s@^\(\('"$(
        printf '%s\|' "${!metaRegexe[@]}" | \
          sed 's/\\|$//'
      )"'\)=[^)]*\)\n\(.*\)$@\1 \3@;
    tbegin;
    P;
    D
  ' -i PKGBUILD
  sed '/^\('"$(
    printf '%s\|' "${!metaRegexe[@]}" | \
      sed '
        s/\(^\|\\|\)_\?depends\($\|\\|\)/\1\2/
        s/\(\\|\)\{2\}/\1/g
        s/\\|$//
        s/^\\|//
      '
  )"'\)=/d' -i PKGBUILD
  sed 's|^'"$(
    printf '%s\n' "${!metaRegexe[@]}" | \
      grep -xm1 '_\?depends' | \
      tr -d '\n'
  )"'=.*$|'"${ersatz}"'|' -i PKGBUILD
  "${me}" "$@"
fi