summaryrefslogtreecommitdiff
path: root/find-package-differences
blob: 299122117fc79c18bb35a4f32944cb30bc6c6ea5 (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
#!/bin/sh

set +e

trap 'rm -rf --one-file-system "${tmp_dir:?}"' EXIT
tmp_dir=$(mktemp -d)

all_archs=(
  $(
    curl -Ss 'https://arch.eckner.net/archlinuxewe/os/' | \
      sed -n '
        s,^.*href="\([^".]\+\)/".*$,\1,
        T
        p
      '
  )
)

{
  find ~erich/'eigeneSkripte/archPackages' -mindepth 2 -maxdepth 2 -type f -name PKGBUILD | \
    while read -r PKGBUILD; do
      if grep -qxF '# repo: releng' "${PKGBUILD}"; then
        repo='releng'
      else
        repo='archlinuxewe'
      fi
      for arch in $(
        sed -n '
          s/^arch=(\([^)]*\)).*$/\1/
          T
          s/['"'"'"]//g
          p
        ' "${PKGBUILD}"
      ); do
        if [ "${repo}" = 'releng' ]; then
          case "${arch}" in
            'any')
              arch='x86_64'
            ;;
            'x86_64')
              :
            ;;
            *)
              continue
            ;;
          esac
        fi
        for pkgname in $(
          sed -n '
            s/^pkgname=(\([^)]*\)).*$/\1/
            t foundPkgname
            s/^pkgname=//
            T
            :foundPkgname
             s/['"'"'"]//g
            p
          ' "${PKGBUILD}"
        ); do
          printf '%s/%s/%s\n' \
            "${arch}" \
            "${repo}" \
            "${pkgname}"
          if [ "${arch}" = 'any' ] && [ "${repo}" = 'archlinuxewe' ]; then
            printf '%s/'"${repo}/${pkgname}"'\n' \
              "${all_archs[@]}"
          fi
        done
      done
    done | \
    sed '
      s/^/source: /
    '
  {
    for arch in "${all_archs[@]}"; do
      curl -Ss 'https://arch.eckner.net/archlinuxewe/os/'"${arch}"'/archlinuxewe.db.tar.gz' | \
        tar -tz --wildcards '*/desc' | \
        sed '
          s,-[^-]\+-[^-]\+/desc$,,
          s,^,'"${arch}"'/archlinuxewe/,
        '
    done
    curl -Ss 'https://arch.eckner.net/archlinux32/x86_64/releng/releng.db.tar.gz' | \
      tar -tz --wildcards '*/desc' | \
      sed '
        s,-[^-]\+-[^-]\+/desc$,,
        s,^,x86_64/releng/,
      '
  } | \
    sed '
      s/^/package: /
    '
} | \
  sort -k2 | \
  uniq -uf1