mirror of
https://github.com/rancher/os.git
synced 2025-09-01 23:04:41 +00:00
Add ./scripts/vendor-cleanup.sh
And cleanup glide.yaml
This commit is contained in:
55
scripts/vendor-cleanup.sh
Executable file
55
scripts/vendor-cleanup.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/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!'
|
Reference in New Issue
Block a user