diff --git a/hack/lib/init.sh b/hack/lib/init.sh index 8a2c4288c94..7077f777664 100644 --- a/hack/lib/init.sh +++ b/hack/lib/init.sh @@ -40,3 +40,16 @@ source "${KUBE_ROOT}/hack/lib/golang.sh" source "${KUBE_ROOT}/hack/lib/etcd.sh" KUBE_OUTPUT_HOSTBIN="${KUBE_OUTPUT_BINPATH}/$(kube::util::host_platform)" + +# emulates "readlink -f" which is not available on BSD (OS X). +function readlinkdashf { + path=$1 + # Follow links until there are no more links to follow. + while readlink "$path"; do + path="$(readlink $path)" + done + # Convert to canonical path. + path=$(cd "$(dirname "${path}")" && pwd -P) + echo "$path" +} + diff --git a/hack/update-codecgen.sh b/hack/update-codecgen.sh index 195a029659c..4e8fde46dc8 100755 --- a/hack/update-codecgen.sh +++ b/hack/update-codecgen.sh @@ -53,8 +53,7 @@ result="" function depends { file=${generated_files[$1]//\.generated\.go/.go} deps=$(go list -f "{{.Deps}}" ${file} | tr "[" " " | tr "]" " ") - inputfile=${generated_files[$2]//\.generated\.go/.go} - fullpath=${generated_files[$2]//\.generated\.go/.go} + fullpath=$(readlinkdashf "${generated_files[$2]//\.generated\.go/.go}") candidate=$(dirname "${fullpath}") result=false for dep in ${deps}; do @@ -103,7 +102,6 @@ for (( i=0; i < number; i++ )); do rm -f "${generated_files[${i}]}" done - # Generate files in the dependency order. for current in "${index[@]}"; do generated_file=${generated_files[${current}]} diff --git a/hack/verify-codecgen.sh b/hack/verify-codecgen.sh index e750f891576..44dc03e5b9d 100755 --- a/hack/verify-codecgen.sh +++ b/hack/verify-codecgen.sh @@ -54,7 +54,7 @@ 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}) + fullpath=$(readlinkdashf "${generated_files[$2]//\.generated\.go/.go}") candidate=$(dirname "${fullpath}") result=false for dep in ${deps}; do