1
0
mirror of https://github.com/rancher/os.git synced 2025-06-21 20:47:04 +00:00
os/scripts/vendor-cleanup.sh
Ivan Mikushin f3afb076f7 Add ./scripts/vendor-cleanup.sh
And cleanup glide.yaml
2015-12-09 20:55:00 +05:00

56 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -e
cd $(dirname $0)/..
package=$(go list)
prefix="${package}/vendor"
require="github.com/stretchr/testify/require" # the only test import
imports=( )
importsLen=${#imports[@]}
collectImports() {
imports=( $(GOOS=linux go list -f '{{join .Deps "\n"}}' | egrep "^${prefix}/" | sed s%"^${package}.*/vendor/"%./vendor/%) )
imports=(
"${imports[@]}" "./vendor/${require}"
$(GOOS=linux go list -f '{{join .Deps "\n"}}' "${prefix}/${require}" | egrep "^${prefix}/" | sed s%"^${package}.*/vendor/"%./vendor/%)
)
echo importsLen: $importsLen
echo collected imports: ${#imports[@]}
}
nonImports() {
while read path; do
skip=0
for i in "${imports[@]}"; do
[[ "${i}" == "${path}" || ${i} = ${path}/* ]] && skip=1 && break
done
[ "$skip" == "0" ] && echo ${path}
done
}
collectImports
while [ ${#imports[@]} != ${importsLen} ]; do
importsLen=${#imports[@]}
echo '=====> Collected imports'
for i in "${imports[@]}"; do
echo ${i}
done
echo '=====> Removing unused packages'
find ./vendor -type d | nonImports | xargs -I{} rm -rf {}
echo '=====> Removing empty dirs'
emptyDirs=( $(find ./vendor -type d -empty) )
while [ ${#emptyDirs[@]} -gt 0 ]; do
rmdir ${emptyDirs[@]}
emptyDirs=( $(find ./vendor -type d -empty) )
done
collectImports
done
echo '=====> Done!'