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
8ac89346
Commit
8ac89346
authored
May 03, 2016
by
Daniel Smith
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix codecgen
* Make verify call update * Make update's topological sort not confused about the "io" package
parent
56d1afba
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 @
8ac89346
...
@@ -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 @
8ac89346
...
@@ -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