blob: ded763a579b68ae5554e6f9dadc369fc48949c95 [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