mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 12:15:52 +00:00
Merge pull request #49216 from sttts/sttts-fix-ugorji-staging-tsort
Automatic merge from submit-queue update-codecgen.sh: support staging dirs in tsort logic Fixes #48984.
This commit is contained in:
commit
e1a2cf0178
@ -27,9 +27,6 @@ kube::golang::setup_env
|
|||||||
# list (since there aren't many dependencies).
|
# list (since there aren't many dependencies).
|
||||||
|
|
||||||
generated_files=($(
|
generated_files=($(
|
||||||
find ./vendor/k8s.io/api/ \
|
|
||||||
-name '*.generated.go' | LC_ALL=C sort -r
|
|
||||||
|
|
||||||
find . -not \( \
|
find . -not \( \
|
||||||
\( \
|
\( \
|
||||||
-wholename './output' \
|
-wholename './output' \
|
||||||
@ -43,36 +40,35 @@ generated_files=($(
|
|||||||
\) -prune \
|
\) -prune \
|
||||||
\) -name '*.generated.go' | LC_ALL=C sort -r
|
\) -name '*.generated.go' | LC_ALL=C sort -r
|
||||||
|
|
||||||
find ./vendor/k8s.io/kube-aggregator/ -not \( \
|
find ./staging/src -not \( \
|
||||||
\( \
|
\( \
|
||||||
-wholename './output' \
|
-wholename './output' \
|
||||||
-o -wholename './_output' \
|
-o -wholename './_output' \
|
||||||
-o -wholename './staging' \
|
|
||||||
-o -wholename './release' \
|
-o -wholename './release' \
|
||||||
-o -wholename './target' \
|
-o -wholename './target' \
|
||||||
-o -wholename '*/third_party/*' \
|
-o -wholename '*/third_party/*' \
|
||||||
-o -wholename '*/codecgen-*-1234.generated.go' \
|
-o -wholename '*/codecgen-*-1234.generated.go' \
|
||||||
\) -prune \
|
\) -prune \
|
||||||
\) -name '*.generated.go' | LC_ALL=C sort -r
|
\) -name '*.generated.go' | sed 's,staging/src,vendor,' | LC_ALL=C sort -r
|
||||||
|
|
||||||
find ./vendor/k8s.io/metrics/ \
|
|
||||||
-name '*.generated.go' | LC_ALL=C sort -r
|
|
||||||
|
|
||||||
find ./vendor/k8s.io/apiserver/ -not \( \
|
|
||||||
\( \
|
|
||||||
-wholename './output' \
|
|
||||||
-o -wholename './_output' \
|
|
||||||
-o -wholename './staging' \
|
|
||||||
-o -wholename './release' \
|
|
||||||
-o -wholename './target' \
|
|
||||||
-o -wholename '*/third_party/*' \
|
|
||||||
-o -wholename '*/codecgen-*-1234.generated.go' \
|
|
||||||
\) -prune \
|
|
||||||
\) -name '*.generated.go' | LC_ALL=C sort -r
|
|
||||||
))
|
))
|
||||||
|
number=${#generated_files[@]}
|
||||||
|
###for f in $(echo "${generated_files[@]}" | LC_ALL=C sort); do
|
||||||
|
### echo "DBG: generated_files: $f"
|
||||||
|
###done
|
||||||
|
|
||||||
# We only work for deps within this prefix.
|
function package () {
|
||||||
my_prefix="k8s.io/kubernetes"
|
dirname "${1}" | sed 's,\./,k8s.io/kubernetes/,'
|
||||||
|
}
|
||||||
|
|
||||||
|
# extract package list we care about.
|
||||||
|
dep_packages=($(
|
||||||
|
for f in "${generated_files[@]}"; do
|
||||||
|
package "${f}"
|
||||||
|
done | LC_ALL=C sort -u
|
||||||
|
))
|
||||||
|
###for f in $(echo "${dep_packages[@]}"); do
|
||||||
|
### echo "DBG: dep_packages: $f"
|
||||||
|
###done
|
||||||
|
|
||||||
# Register function to be called on EXIT to remove codecgen
|
# Register function to be called on EXIT to remove codecgen
|
||||||
# binary and also to touch the files that should be regenerated
|
# binary and also to touch the files that should be regenerated
|
||||||
@ -81,8 +77,8 @@ my_prefix="k8s.io/kubernetes"
|
|||||||
function cleanup {
|
function cleanup {
|
||||||
rm -f "${CODECGEN:-}"
|
rm -f "${CODECGEN:-}"
|
||||||
pushd "${KUBE_ROOT}" > /dev/null
|
pushd "${KUBE_ROOT}" > /dev/null
|
||||||
for (( i=0; i < number; i++ )); do
|
for f in "${generated_files[@]}"; do
|
||||||
touch "${generated_files[${i}]}" || true
|
touch "${f}" || true
|
||||||
done
|
done
|
||||||
popd > /dev/null
|
popd > /dev/null
|
||||||
}
|
}
|
||||||
@ -90,23 +86,19 @@ trap cleanup EXIT
|
|||||||
|
|
||||||
# Precompute dependencies for all directories.
|
# Precompute dependencies for all directories.
|
||||||
# Then sort all files in the dependency order.
|
# Then sort all files in the dependency order.
|
||||||
number=${#generated_files[@]}
|
|
||||||
result=""
|
result=""
|
||||||
|
dep_packages_grep_pattern=$(echo ${dep_packages[@]} | tr " " '|')
|
||||||
|
###echo "DBG: dep_packages_grep_pattern: ${dep_packages_grep_pattern}"
|
||||||
for (( i=0; i<number; i++ )); do
|
for (( i=0; i<number; i++ )); do
|
||||||
visited[${i}]=false
|
visited[${i}]=false
|
||||||
file="${generated_files[${i}]/\.generated\.go/.go}"
|
file="${generated_files[${i}]/\.generated\.go/.go}"
|
||||||
deps[${i}]=$(go list -f '{{range .Deps}}{{.}}{{"\n"}}{{end}}' ${file} | grep "^${my_prefix}")
|
deps[${i}]=$(go list -f '{{range .Deps}}{{.}}{{"\n"}}{{end}}' ${file} | grep -Eow "^\\(${dep_packages_grep_pattern}\\)\$" | tr $"\n" ' ' || true)
|
||||||
|
###echo "DBG: deps[$file]: ${deps[$i]}"
|
||||||
done
|
done
|
||||||
###echo "DBG: found $number generated files"
|
|
||||||
###for f in $(echo "${generated_files[@]}" | LC_ALL=C sort); do
|
|
||||||
### echo "DBG: $f"
|
|
||||||
###done
|
|
||||||
|
|
||||||
# NOTE: depends function assumes that the whole repository is under
|
|
||||||
# $my_prefix - it will NOT work if that is not true.
|
|
||||||
function depends {
|
function depends {
|
||||||
rhs="$(dirname ${generated_files[$2]/#./${my_prefix}})"
|
rhs="$(package ${generated_files[$2]})"
|
||||||
###echo "DBG: does ${file} depend on ${rhs}?"
|
####echo "DBG: does generated_files[$1] depend on ${rhs}?"
|
||||||
for dep in ${deps[$1]}; do
|
for dep in ${deps[$1]}; do
|
||||||
###echo "DBG: checking against $dep"
|
###echo "DBG: checking against $dep"
|
||||||
if [[ "${dep}" == "${rhs}" ]]; then
|
if [[ "${dep}" == "${rhs}" ]]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user