#!/bin/sh
|
|
|
|
log() {
|
|
# shellcheck disable=SC2039
|
|
local IFS=" "
|
|
printf '%s\n' "$*"
|
|
}
|
|
|
|
log_error() {
|
|
# shellcheck disable=SC2039
|
|
local IFS=" "
|
|
printf 'Error: %s\n' "$*" >&2
|
|
}
|
|
|
|
cache_cleanup() {
|
|
if ! [ -d "$GO_MOD_CACHE_DIR" ]; then
|
|
return 0
|
|
fi
|
|
|
|
# in case go is called without -modcacherw
|
|
find "$GO_MOD_CACHE_DIR" -type d -not -perm -u+w -exec chmod u+w '{}' +
|
|
|
|
if [ -n "$CONFIG_GOLANG_MOD_CACHE_WORLD_READABLE" ]; then
|
|
find "$GO_MOD_CACHE_DIR" -type d -not -perm -go+rx -exec chmod go+rx '{}' +
|
|
find "$GO_MOD_CACHE_DIR" -not -type d -not -perm -go+r -exec chmod go+r '{}' +
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
|
|
if [ "$#" -lt 1 ]; then
|
|
log_error "Missing command"
|
|
exit 1
|
|
fi
|
|
|
|
command="$1"
|
|
shift 1
|
|
|
|
case "$command" in
|
|
cache_cleanup)
|
|
cache_cleanup
|
|
;;
|
|
*)
|
|
log_error "Invalid command \"$command\""
|
|
exit 1
|
|
;;
|
|
esac
|