1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/usr/bin/env bash
- set -o errexit
- set -o nounset
- set -o pipefail
- if [[ -z "${1:-}" ]]; then
- echo "usage: $0 <cache-file>"
- exit 1
- fi
- CACHE="$1"; shift
- trap 'rm -f "${CACHE}"' HUP INT TERM ERR
- function kfind() {
-
-
-
-
- find -H . \
- \( \
- -not \( \
- \( \
- -path ./_\* -o \
- -path ./.\* -o \
- -path ./vendor -o \
- -path ./Godeps \
- \) -prune \
- \) \
- \) \
- "$@" \
- | sed 's|^./staging/src|vendor|'
- }
- NEED_FIND=true
- if [[ -f "${CACHE}" ]]; then
- N=$(kfind -type d -newer "${CACHE}" -print -quit | wc -l)
- [[ "${N}" == 0 ]] && NEED_FIND=false
- fi
- mkdir -p "$(dirname "${CACHE}")"
- if ${NEED_FIND}; then
- kfind -type f -name \*.go \
- | sed 's|/[^/]*$||' \
- | sed 's|^./||' \
- | LC_ALL=C sort -u \
- > "${CACHE}"
- fi
- cat "${CACHE}"
|