summaryrefslogtreecommitdiff
path: root/dev-cpp/aws-sdk-cpp/files
diff options
context:
space:
mode:
authorCrucible <crucible@localhost>2026-09-24 17:00:15 -0500
committerCrucible <crucible@localhost>2026-09-24 17:00:15 -0500
commit80e6fcef01171b9705c9c9ffefb41bc4c0b43256 (patch)
treeec29cf3f4a6121d38563db399369efe625967680 /dev-cpp/aws-sdk-cpp/files
parent6295f37a70d50a32011b5a1ee7793fea329cd5f2 (diff)
downloadsrcux-80e6fcef01171b9705c9c9ffefb41bc4c0b43256.tar.gz
srcux-80e6fcef01171b9705c9c9ffefb41bc4c0b43256.tar.xz
srcux-80e6fcef01171b9705c9c9ffefb41bc4c0b43256.zip
Publish srcux candidate 0000000386-20260924-165828
Diffstat (limited to 'dev-cpp/aws-sdk-cpp/files')
-rwxr-xr-xdev-cpp/aws-sdk-cpp/files/mnt_check_aws_groups77
1 files changed, 77 insertions, 0 deletions
diff --git a/dev-cpp/aws-sdk-cpp/files/mnt_check_aws_groups b/dev-cpp/aws-sdk-cpp/files/mnt_check_aws_groups
new file mode 100755
index 000000000000..f55e4b02f435
--- /dev/null
+++ b/dev-cpp/aws-sdk-cpp/files/mnt_check_aws_groups
@@ -0,0 +1,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