Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
83c121e9
Commit
83c121e9
authored
May 04, 2016
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #25108 from lavalamp/master
Automatic merge from submit-queue Fix verify codecgen Fixes #25103.
parents
53ea2cb4
8ac89346
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
79 deletions
+26
-79
update-codecgen.sh
hack/update-codecgen.sh
+12
-5
verify-codecgen.sh
hack/verify-codecgen.sh
+14
-74
No files found.
hack/update-codecgen.sh
View file @
83c121e9
...
@@ -23,6 +23,9 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
...
@@ -23,6 +23,9 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
kube::golang::setup_env
kube::golang::setup_env
# The sort at the end makes sure we feed the topological sort a deterministic
# list (since there aren't many dependencies).
generated_files
=(
$(
generated_files
=(
$(
find
.
-not
\(
\
find
.
-not
\(
\
\(
\
\(
\
...
@@ -34,7 +37,7 @@ generated_files=($(
...
@@ -34,7 +37,7 @@ generated_files=($(
-o
-wholename
'*/Godeps/*'
\
-o
-wholename
'*/Godeps/*'
\
-o
-wholename
'*/codecgen-*-1234.generated.go'
\
-o
-wholename
'*/codecgen-*-1234.generated.go'
\
\)
-prune
\
\)
-prune
\
\)
-name
'*.generated.go'
)
)
\)
-name
'*.generated.go'
|
sort
-r
)
)
# 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
...
@@ -63,13 +66,17 @@ function depends {
...
@@ -63,13 +66,17 @@ function depends {
file
=
${
generated_files
[
$1
]//\.generated\.go/.go
}
file
=
${
generated_files
[
$1
]//\.generated\.go/.go
}
deps
=
$(
go list
-f
"{{.Deps}}"
${
file
}
|
tr
"["
" "
|
tr
"]"
" "
)
deps
=
$(
go list
-f
"{{.Deps}}"
${
file
}
|
tr
"["
" "
|
tr
"]"
" "
)
candidate
=
$(
readlinkdashf
"
${
generated_files
[
$2
]//\.generated\.go/.go
}
"
)
candidate
=
$(
readlinkdashf
"
${
generated_files
[
$2
]//\.generated\.go/.go
}
"
)
result
=
false
for
dep
in
${
deps
}
;
do
for
dep
in
${
deps
}
;
do
if
[[
${
candidate
}
=
*${
dep
}
]]
;
then
# Only look at dependencies within the kubernetes tree-- otherwise the "io"
result
=
true
# package matches the end of one of our directories.
if
[[
${
dep
}
=
"k8s.io"
*
]]
;
then
if
[[
${
candidate
}
=
*${
dep
}
]]
;
then
echo true
return
fi
fi
fi
done
done
echo
${
result
}
echo
false
}
}
function
tsort
{
function
tsort
{
...
...
hack/verify-codecgen.sh
View file @
83c121e9
...
@@ -35,85 +35,25 @@ generated_files=($(
...
@@ -35,85 +35,25 @@ generated_files=($(
\)
-prune
\
\)
-prune
\
\)
-name
'*.generated.go'
)
)
\)
-name
'*.generated.go'
)
)
# create a nice clean place to put codecgen there
for
generated_file
in
${
generated_files
[@]
}
;
do
_tmpdir
=
"
$(
mktemp
-d
-t
codecgen.XXXXXX
)
"
cat
"
${
generated_file
}
"
>
"
${
generated_file
}
.original"
function
cleanup
{
echo
"Removing
${
_tmpdir
}
"
rm
-rf
"
${
_tmpdir
}
"
}
trap
cleanup EXIT
# Sort all files in the dependency order.
number
=
${#
generated_files
[@]
}
for
((
i
=
0
;
i<number
;
i++
))
;
do
visited[
${
i
}
]=
false
done
done
result
=
""
function
depends
{
file
=
${
generated_files
[
$1
]//\.generated\.go/.go
}
deps
=
$(
go list
-f
"{{.Deps}}"
${
file
}
|
tr
"["
" "
|
tr
"]"
" "
)
candidate
=
$(
readlinkdashf
"
${
generated_files
[
$2
]//\.generated\.go/.go
}
"
)
result
=
false
for
dep
in
${
deps
}
;
do
if
[[
${
candidate
}
=
*${
dep
}
]]
;
then
result
=
true
fi
done
echo
${
result
}
}
function
tsort
{
${
KUBE_ROOT
}
/hack/update-codecgen.sh
visited[
$1
]=
true
local
j
=
0
for
((
j
=
0
;
j<number
;
j++
))
;
do
if
!
${
visited
[
${
j
}
]
}
;
then
if
$(
depends
"
$1
"
${
j
})
;
then
tsort
$j
fi
fi
done
result
=
"
${
result
}
$1
"
}
for
((
i
=
0
;
i<number
;
i++
))
;
do
if
!
${
visited
[
${
i
}
]
}
;
then
tsort
${
i
}
fi
done
index
=(
${
result
}
)
CODECGEN
=
"
${
_tmpdir
}
/codecgen_binary"
godep go build
-o
"
${
CODECGEN
}
"
github.com/ugorji/go/codec/codecgen
ret
=
0
# Generate files in the dependency order.
# Generate files in the dependency order.
for
current
in
${
index
[@]
}
;
do
for
generated_file
in
${
generated_files
[@]
}
;
do
generated_file
=
${
generated_files
[
${
current
}
]
}
cur
=
0
initial_dir
=
${
PWD
}
diff
-Naupr
-I
'Auto generated by'
"
${
generated_file
}
"
"
${
generated_file
}
.original"
||
cur
=
$?
file
=
${
generated_file
//\.generated\.go/.go
}
if
[[
$cur
-eq
0
]]
;
then
# codecgen work only if invoked from directory where the file
# is located.
pushd
"
$(
dirname
${
file
})
"
>
/dev/null
base_file
=
$(
basename
"
${
file
}
"
)
base_generated_file
=
$(
basename
"
${
generated_file
}
"
)
# temporarily move the generated file to a non-go file so it doesn't influence the verify codecgen
mv
"
${
base_generated_file
}
"
"
${
base_generated_file
}
.bak"
# We use '-d 1234' flag to have a deterministic output every time.
# The constant was just randomly chosen.
${
CODECGEN
}
-d
1234
-o
"
${
base_generated_file
}
.1tmp"
"
${
base_file
}
"
# Add boilerplate at the beginning of the generated file.
sed
's/YEAR/2015/'
"
${
initial_dir
}
/hack/boilerplate/boilerplate.go.txt"
>
"
${
base_generated_file
}
.tmp"
cat
"
${
base_generated_file
}
.1tmp"
>>
"
${
base_generated_file
}
.tmp"
rm
"
${
base_generated_file
}
.1tmp"
# restore the generated file
mv
"
${
base_generated_file
}
.bak"
"
${
base_generated_file
}
"
ret
=
0
diff
-Naupr
-I
'Auto generated by'
"
${
base_generated_file
}
"
"
${
base_generated_file
}
.tmp"
||
ret
=
$?
if
[[
$ret
-eq
0
]]
;
then
echo
"
${
generated_file
}
up to date."
echo
"
${
generated_file
}
up to date."
else
else
echo
"
${
generated_file
}
is out of date. Please run hack/update-codecgen.sh
"
echo
"
${
generated_file
}
was out of date. Please run hack/update-codecgen.sh. (If you're running locally, this was run for you already.)
"
exit
1
ret
=
1
fi
fi
rm
"
${
base_generated_file
}
.tmp"
popd
>
/dev/null
rm
-f
"
${
generated_file
}
.original"
done
done
exit
$ret
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment