mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +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:
		@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user