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
ecb394a5
Commit
ecb394a5
authored
Nov 04, 2015
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #16788 from wojtek-t/fix_codecgen
Auto commit by PR queue bot
parents
38955172
2e9da5e6
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
93 additions
and
10 deletions
+93
-10
update-codecgen.sh
hack/update-codecgen.sh
+48
-5
verify-codecgen.sh
hack/verify-codecgen.sh
+45
-5
No files found.
hack/update-codecgen.sh
View file @
ecb394a5
...
@@ -23,7 +23,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
...
@@ -23,7 +23,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
kube::golang::setup_env
kube::golang::setup_env
generated_files
=
$(
generated_files
=
(
$(
find
.
-not
\(
\
find
.
-not
\(
\
\(
\
\(
\
-wholename
'./output'
\
-wholename
'./output'
\
...
@@ -33,7 +33,7 @@ generated_files=$(
...
@@ -33,7 +33,7 @@ generated_files=$(
-o
-wholename
'*/third_party/*'
\
-o
-wholename
'*/third_party/*'
\
-o
-wholename
'*/Godeps/*'
\
-o
-wholename
'*/Godeps/*'
\
\)
-prune
\
\)
-prune
\
\)
-name
'*.generated.go'
)
\)
-name
'*.generated.go'
)
)
# Build codecgen binary from Godeps.
# Build codecgen binary from Godeps.
function
cleanup
{
function
cleanup
{
...
@@ -41,6 +41,46 @@ function cleanup {
...
@@ -41,6 +41,46 @@ function cleanup {
}
}
trap
cleanup EXIT
trap
cleanup EXIT
# Sort all files in the dependency order.
number
=
${#
generated_files
[@]
}
for
((
i
=
0
;
i<number
;
i++
))
;
do
visited[
${
i
}
]=
false
done
result
=
""
function
depends
{
file
=
${
generated_files
[
$1
]//\.generated\.go/.go
}
deps
=
$(
go list
-f
"{{.Deps}}"
${
file
}
|
tr
"["
" "
|
tr
"]"
" "
)
fullpath
=
$(
readlink
-f
${
generated_files
[
$2
]//\.generated\.go/.go
})
candidate
=
$(
dirname
"
${
fullpath
}
"
)
result
=
false
for
dep
in
${
deps
}
;
do
if
[[
${
candidate
}
=
*${
dep
}
]]
;
then
result
=
true
fi
done
echo
${
result
}
}
function
tsort
{
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
=
"
${
PWD
}
/codecgen_binary"
CODECGEN
=
"
${
PWD
}
/codecgen_binary"
godep go build
-o
"
${
CODECGEN
}
"
github.com/ugorji/go/codec/codecgen
godep go build
-o
"
${
CODECGEN
}
"
github.com/ugorji/go/codec/codecgen
...
@@ -48,11 +88,13 @@ godep go build -o "${CODECGEN}" github.com/ugorji/go/codec/codecgen
...
@@ -48,11 +88,13 @@ godep go build -o "${CODECGEN}" github.com/ugorji/go/codec/codecgen
# Thus (since all the files are completely auto-generated and
# Thus (since all the files are completely auto-generated and
# not required for the code to be compilable, we first remove
# not required for the code to be compilable, we first remove
# them and the regenerate them.
# them and the regenerate them.
for
generated_file
in
${
generated_files
}
;
do
for
((
i
=
0
;
i < number
;
i++
))
;
do
rm
-f
"
${
generated_file
}
"
rm
-f
"
${
generated_files
[
${
i
}
]
}
"
done
done
for
generated_file
in
${
generated_files
}
;
do
# Generate files in the dependency order.
for
current
in
"
${
index
[@]
}
"
;
do
generated_file
=
${
generated_files
[
${
current
}
]
}
initial_dir
=
${
PWD
}
initial_dir
=
${
PWD
}
file
=
${
generated_file
//\.generated\.go/.go
}
file
=
${
generated_file
//\.generated\.go/.go
}
# codecgen work only if invoked from directory where the file
# codecgen work only if invoked from directory where the file
...
@@ -67,5 +109,6 @@ for generated_file in ${generated_files}; do
...
@@ -67,5 +109,6 @@ for generated_file in ${generated_files}; do
sed
's/YEAR/2015/'
"
${
initial_dir
}
/hack/boilerplate/boilerplate.go.txt"
>
"
${
base_generated_file
}
.tmp"
sed
's/YEAR/2015/'
"
${
initial_dir
}
/hack/boilerplate/boilerplate.go.txt"
>
"
${
base_generated_file
}
.tmp"
cat
"
${
base_generated_file
}
"
>>
"
${
base_generated_file
}
.tmp"
cat
"
${
base_generated_file
}
"
>>
"
${
base_generated_file
}
.tmp"
mv
"
${
base_generated_file
}
.tmp"
"
${
base_generated_file
}
"
mv
"
${
base_generated_file
}
.tmp"
"
${
base_generated_file
}
"
echo
"
${
generated_file
}
is regenerated."
popd
>
/dev/null
popd
>
/dev/null
done
done
hack/verify-codecgen.sh
View file @
ecb394a5
...
@@ -23,9 +23,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
...
@@ -23,9 +23,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
kube::golang::setup_env
kube::golang::setup_env
cd
"
${
KUBE_ROOT
}
"
generated_files
=(
$(
generated_files
=
$(
find
.
-not
\(
\
find
.
-not
\(
\
\(
\
\(
\
-wholename
'./output'
\
-wholename
'./output'
\
...
@@ -35,7 +33,7 @@ generated_files=$(
...
@@ -35,7 +33,7 @@ generated_files=$(
-o
-wholename
'*/third_party/*'
\
-o
-wholename
'*/third_party/*'
\
-o
-wholename
'*/Godeps/*'
\
-o
-wholename
'*/Godeps/*'
\
\)
-prune
\
\)
-prune
\
\)
-name
'*.generated.go'
)
\)
-name
'*.generated.go'
)
)
# create a nice clean place to put codecgen there
# create a nice clean place to put codecgen there
_tmpdir
=
"
$(
mktemp
-d
-t
codecgen.XXXXXX
)
"
_tmpdir
=
"
$(
mktemp
-d
-t
codecgen.XXXXXX
)
"
...
@@ -45,6 +43,46 @@ function cleanup {
...
@@ -45,6 +43,46 @@ function cleanup {
}
}
trap
cleanup EXIT
trap
cleanup EXIT
# Sort all files in the dependency order.
number
=
${#
generated_files
[@]
}
for
((
i
=
0
;
i<number
;
i++
))
;
do
visited[
${
i
}
]=
false
done
result
=
""
function
depends
{
file
=
${
generated_files
[
$1
]//\.generated\.go/.go
}
deps
=
$(
go list
-f
"{{.Deps}}"
${
file
}
|
tr
"["
" "
|
tr
"]"
" "
)
fullpath
=
$(
readlink
-f
${
generated_files
[
$2
]//\.generated\.go/.go
})
candidate
=
$(
dirname
"
${
fullpath
}
"
)
result
=
false
for
dep
in
${
deps
}
;
do
if
[[
${
candidate
}
=
*${
dep
}
]]
;
then
result
=
true
fi
done
echo
${
result
}
}
function
tsort
{
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
}
)
# Build codecgen from Godeps.
# Build codecgen from Godeps.
# However, we need to install godep first.
# However, we need to install godep first.
# We make some tricks with GOPATH variable to make it work with Travis.
# We make some tricks with GOPATH variable to make it work with Travis.
...
@@ -58,7 +96,9 @@ export GOPATH=${_gopath}
...
@@ -58,7 +96,9 @@ export GOPATH=${_gopath}
CODECGEN
=
"
${
_tmpdir
}
/codecgen_binary"
CODECGEN
=
"
${
_tmpdir
}
/codecgen_binary"
${
GODEP
}
go build
-o
"
${
CODECGEN
}
"
github.com/ugorji/go/codec/codecgen
${
GODEP
}
go build
-o
"
${
CODECGEN
}
"
github.com/ugorji/go/codec/codecgen
for
generated_file
in
${
generated_files
}
;
do
# Generate files in the dependency order.
for
current
in
${
index
[@]
}
;
do
generated_file
=
${
generated_files
[
${
current
}
]
}
initial_dir
=
${
PWD
}
initial_dir
=
${
PWD
}
file
=
${
generated_file
//\.generated\.go/.go
}
file
=
${
generated_file
//\.generated\.go/.go
}
# codecgen work only if invoked from directory where the file
# codecgen work only if invoked from directory where the file
...
...
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