summaryrefslogtreecommitdiff
path: root/dev-cpp/aws-sdk-cpp/files
diff options
context:
space:
mode:
authorCrucible <crucible@localhost>2026-09-23 22:26:59 -0500
committerCrucible <crucible@localhost>2026-09-23 22:26:59 -0500
commit0bfba5fe509bcae69a88bc8f932be891aae42ee2 (patch)
tree9a27fbe3b6704f3ae2f209c56bc5f6e7247b74d4 /dev-cpp/aws-sdk-cpp/files
parentf02b743c6d8ce39c700b870dd8581fc1453db734 (diff)
downloadsrcux-0bfba5fe509bcae69a88bc8f932be891aae42ee2.tar.gz
srcux-0bfba5fe509bcae69a88bc8f932be891aae42ee2.tar.xz
srcux-0bfba5fe509bcae69a88bc8f932be891aae42ee2.zip
Publish srcux candidate 0000000368-20260923-222437
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