tb-dotfiles/chezmoi/dot_zshrc.d/executable_chezmoi.zsh

49 lines
988 B
Bash

# completion
(
set -euo pipefail
CHEZMOI_PATH="$(command -v chezmoi 2> /dev/null)"
COMPLETION_FILE="${ZSH_COMPLETIONS_DIR}/_chezmoi"
if [ -r "$COMPLETION_FILE" ]; then
COMPLETION_FILE_CTIME="$(stat -c %Z "$COMPLETION_FILE")"
CHEZMOI_FILE_CTIME="$(stat -c %Z "${CHEZMOI_PATH}")"
if [ "$COMPLETION_FILE_CTIME" -ge "$CHEZMOI_FILE_CTIME" ]; then
exit 0
fi
fi
chezmoi completion zsh > "$COMPLETION_FILE"
chmod +x "$COMPLETION_FILE"
)
# auto update
(
set -euo pipefail
# has the chezmoi repo been pulled in the last 24 hours?
if [ "$(date +%s -r "$(chezmoi git rev-parse -- --show-toplevel)/.git/FETCH_HEAD")" -gt $((EPOCHSECONDS-86400)) ]; then
exit 0
fi
chezmoi git pull -- --rebase
chezmoi diff
while true; do
read -r 'APPLY?apply? [y/N] '
case "${APPLY:-}" in
'y'|'Y'|'YES'|'yes'|'Yes')
echo 'applying changes'
chezmoi apply
exit 0
;;
'n'|'N'|'NO'|'no'|'No'|'')
echo 'not applying changes'
exit 0
;;
esac
done
)