#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"' # shellcheck disable=SC1090 if is_cmd 'chezmoi'; then alias cz="chezmoi " alias ll-cz='ll --color=always | grep -v remove_ ' eval "$( chezmoi completion "${SHELL##*/}" | sed -Ee 's/(complete -o default .* chezmoi)/\1 cz/' )" export CHEZMOI_GITHUB_ACCESS_TOKEN={{- .githubToken | quote }} CZG_ROOT="$(chezmoi git -- rev-parse --show-toplevel)" alias czg="git --work-tree=$CZG_ROOT --git-dir=$CZG_ROOT/.git " unset CZG_ROOT complete -F _complete_alias czg chezmoi() { ${SET_X:-:} -x case "$1" in cd) cz-cd "${2}" ;; edit) ${VISUAL:-${EDITOR:-vi}} $(SET_X=':' chezmoi source-path "${@:2}") ;; # source-path) printf '%s\n' "${@:2}" | xargs -r env chezmoi source-path ;; *) env chezmoi "${@}" ;; esac ${SET_X:-:} +x } cz-cd() { cd "$(chezmoi source-path ${1})"; } czgcd() { cd "$(SET_X=':' chezmoi git -- rev-parse --show-toplevel)${1:+/${1}}" } czedext() { local CZ_EXT="$(find $(SET_X=':' chezmoi source-path) -mindepth 1 -maxdepth 1 -name '.chezmoiexternal.*')" CZ_EXT="${CZ_EXT:-$(SET_X=':' chezmoi source-path "${@}")/.chezmoiexternal.yaml.tmpl}" "${VISUAL:-${EDITOR:-vi}}" "${CZ_EXT}" } czed() { local EDITLIST=() f _f for _f in "${@}"; do [[ -e "$_f" ]] || f="$(which "$_f")" [[ -z "$f" ]] && is_cmd tv && f="$(tv "$_f")" || f=$_f EDITLIST=( "${EDITLIST[@]}" "$f" ) done EDITLIST=("${@}") chezmoi edit "${EDITLIST[@]}" --apply --interactive } # CZ_EXTR is evaluated in .chezmoiexternal.yaml. # By default, a very small portion of the externals are being # evaluated, when CZ_EXTR is set to 1, full evaluation of the # externals yaml is performed. alias czx="CZ_EXTR=1 chezmoi " function czu() { local all=0 refresh=1 verbose='--verbose' debug='' prompts='--promptDefaults' while [[ $# -gt 0 ]]; do case "$1" in '--all') all=1 ;; '--prompt') prompts='' ;; '--no-refresh') refresh=0 ;; '--quiet') verbose='' ;; '--debug') debug='--debug' ;; esac shift done if [[ $all -eq 1 ]]; then chezmoi upgrade fi chezmoi git -- pull --autostash --rebase \ && chezmoi init $prompts $verbose $debug \ && chezmoi status $verbose $debug \ && chezmoi apply --interactive --verbose $verbose $debug if [[ $all -eq 1 ]]; then CZ_EXTR=1 CZ_EZA_PREFIX="" chezmoi status $verbose $debug \ || (CZ_EZA_PREFIX='./' && chezmoi status $verbose $debug ) && chezmoi apply $verbose $debug fi [[ $refresh -ne 1 ]] || (printf "restarting shell...\n" >&2 || exec $SHELL -l) } alias czxu="cz upgrade && czg pull && cz init --verbose && czx apply --verbose && _r" alias cz-reset-home="(czgcd && cd chezmoi.roots && RESET=reset SRC_DIR=_src.all ./symclone.sh _home && RESET=reset ./symclone.sh _home.macos)" fi # vim: set ft=sh sw=4 sts=4 et: