blob: f55e4b02f4357081c080d8b1a441ee45108e044a (
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
|
#! /bin/bash
# Just fake it to allow sourcing the .ebuild file directly into scope.
inherit() {
:
}
in_array() {
local needle="$1"
shift
while [[ $# -gt 0 ]]; do
[[ "$1" = "$needle" ]] && return 0
shift
done
return 1
}
if [[ -r /usr/libexec/rc/sh/functions.sh ]]; then
# We have openrc so high-jack these for prettier output.
. /usr/libexec/rc/sh/functions.sh
else
ebegin() { echo "$*"; }
eend() { :; }
eerror() { echo "$*"; }
fi
for eb in "$@"; do
unset AWS_GROUPS
if [[ "$(basename "${eb}")" != aws-sdk-cpp-*.ebuild ]] ; then
eerror "Ebuild name ${eb} looks invalid, skipping."
continue
fi
if [[ ! -r "${eb}" ]]; then
eerror "${eb} is not readable, skipping."
continue
fi
ebegin "${eb}"
r=0
if ! ebuild "${eb}" fetch; then
eerror "Error fetching dist files."
avail_mods=()
else
distname="$(portageq metadata / ebuild dev-cpp/aws-sdk-cpp-1.11.887 SRC_URI | sed -nre 's/.* -> aws/aws/p')"
avail_mods=($(tar tf "$(portageq envvar DISTDIR)/${distname}" --wildcards "*/generated/src/*" | sed -nre 's:.*/generated/src/aws-cpp-sdk-([^/]+)$:\1:p'))
fi
. "${eb}"
declare -A listed_names=()
for c in "${!AWS_GROUPS[@]}"; do
IFS=';' mods=(${AWS_GROUPS[$c]})
for m in "${mods[@]}"; do
if [[ -n "${listed_names[$m]}" ]]; then
eerror "${m} is listed twice, in first in ${listed_names[$m]} then in ${c}"
r=1
else
listed_names[$m]="${c}"
fi
if [[ "${#avail_mods[@]}" -gt 0 ]] && ! in_array "${m}" "${avail_mods[@]}"; then
eerror "Module ${m} listed in AWS_GROUPS category ${c} is not found in sources."
r=1
fi
done
sorted_list="$(printf "%s\n" "${mods[@]}" | sort | tr '\n' ';')"
if [[ "${sorted_list%;}" != "${AWS_GROUPS[$c]}" ]]; then
eerror "Category ${c} in AWS_GROUPS is not sorted, correctly sorted list is: ${sorted_list%;}"
r=1
fi
done
for m in "${avail_mods[@]}"; do
if [[ -z "${listed_names[$m]}" ]]; then
eerror "Module ${m} in sources is not found in any AWS_GROUPS category."
r=1
fi
done
eend $r
done
|