blob: 904330ea7cf6c678334707d623c2d7337761a73c [file] [edit]
#!/bin/bash
#
# Clean chaches, build artifacts etc, recursively from the directory from which script is called.
readonly SCRIPTS_DIR="$(dirname "$0")"
# shellcheck source=scripts/common
source "${SCRIPTS_DIR}/common"
GIT_STASH_MESSAGE="Stash for git_clean-${RANDOM}"
# Stash untracked but not ignored files
git stash push --include-untracked -m "${GIT_STASH_MESSAGE}"
# Delete remaining untracked files (defacto only ignored files), excluding auth
# files. Use double --force to delete untracked nested repositories.
git clean -d --force --force -x --exclude="/.oak_remote_cache_key.json" --exclude="**/client_secret_*.apps.googleusercontent.com.json"
# Count $GIT_STASH_MESSAGE in list of stashes
STASH_EXIST=$(git stash list | grep "${GIT_STASH_MESSAGE}" -c)
# Restore the previously stashed files, but only if any files were previously stashed.
if [ "${STASH_EXIST}" -gt 0 ]; then
git stash pop
fi