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
2e9da5e6
Commit
2e9da5e6
authored
Nov 04, 2015
by
Wojciech Tyczynski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix unstable hack/update-codecgen.sh output
parent
f64780d6
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 @
2e9da5e6
...
...
@@ -23,7 +23,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
kube::golang::setup_env
generated_files
=
$(
generated_files
=
(
$(
find
.
-not
\(
\
\(
\
-wholename
'./output'
\
...
...
@@ -33,7 +33,7 @@ generated_files=$(
-o
-wholename
'*/third_party/*'
\
-o
-wholename
'*/Godeps/*'
\
\)
-prune
\
\)
-name
'*.generated.go'
)
\)
-name
'*.generated.go'
)
)
# Build codecgen binary from Godeps.
function
cleanup
{
...
...
@@ -41,6 +41,46 @@ function cleanup {
}
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"
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
# not required for the code to be compilable, we first remove
# them and the regenerate them.
for
generated_file
in
${
generated_files
}
;
do
rm
-f
"
${
generated_file
}
"
for
((
i
=
0
;
i < number
;
i++
))
;
do
rm
-f
"
${
generated_files
[
${
i
}
]
}
"
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
}
file
=
${
generated_file
//\.generated\.go/.go
}
# codecgen work only if invoked from directory where the file
...
...
@@ -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"
cat
"
${
base_generated_file
}
"
>>
"
${
base_generated_file
}
.tmp"
mv
"
${
base_generated_file
}
.tmp"
"
${
base_generated_file
}
"
echo
"
${
generated_file
}
is regenerated."
popd
>
/dev/null
done
hack/verify-codecgen.sh
View file @
2e9da5e6
...
...
@@ -23,9 +23,7 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
kube::golang::setup_env
cd
"
${
KUBE_ROOT
}
"
generated_files
=
$(
generated_files
=(
$(
find
.
-not
\(
\
\(
\
-wholename
'./output'
\
...
...
@@ -35,7 +33,7 @@ generated_files=$(
-o
-wholename
'*/third_party/*'
\
-o
-wholename
'*/Godeps/*'
\
\)
-prune
\
\)
-name
'*.generated.go'
)
\)
-name
'*.generated.go'
)
)
# create a nice clean place to put codecgen there
_tmpdir
=
"
$(
mktemp
-d
-t
codecgen.XXXXXX
)
"
...
...
@@ -45,6 +43,46 @@ function cleanup {
}
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.
# However, we need to install godep first.
# We make some tricks with GOPATH variable to make it work with Travis.
...
...
@@ -58,7 +96,9 @@ export GOPATH=${_gopath}
CODECGEN
=
"
${
_tmpdir
}
/codecgen_binary"
${
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
}
file
=
${
generated_file
//\.generated\.go/.go
}
# 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