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
15 lines
720 B
Bash
Executable File
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
|