Files
aego/tools/affected.sh
T
sanspie de49a53172
ci-platforms / build (amd64, windows, windows-2022) (push) Skipped
ci-platforms / build (arm64, darwin, macos-15) (push) Skipped
ci / checks (push) Successful in 21m50s
ci / build (amd64, linux, ubuntu-24.04) (push) Successful in 6m46s
ci-platforms / build (amd64, darwin, macos-15-intel) (push) Skipped
ci / release (push) Successful in 17m42s
Stage 10d3: docs, site demo, check levels, boundary audit (D316)
2026-10-22 16:00:33 +03:00

15 lines
720 B
Bash
Executable File

#!/bin/sh
set -eu
base=${1:-origin/master}
mod=$(go list -m)
dirs=$( { git diff --name-only "$base"...HEAD; git diff --name-only; git diff --name-only --cached; git ls-files --others --exclude-standard; } | grep '\.go$' | while read -r f; do dirname "$f"; done | sort -u)
[ -n "$dirs" ] || exit 0
want=""
for d in $dirs; do
[ -d "$d" ] && want="$want $mod/$d"
done
[ -n "$want" ] || exit 0
go list -f '{{.ImportPath}}{{range .Deps}} {{.}}{{end}}{{range .TestImports}} {{.}}{{end}}{{range .XTestImports}} {{.}}{{end}}' ./... 2>/dev/null |
awk -v want="$want" 'BEGIN { n = split(want, w, " "); for (i = 1; i <= n; i++) set[w[i]] = 1 } { for (i = 1; i <= NF; i++) if ($i in set) { print $1; next } }' |
sort -u