| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # Source it
- eval "$($HOME/.local/bin/mise activate zsh)"
- # Install mise if not present (with caching to avoid repeated checks)
- if ! command -v mise &> /dev/null && [[ ! -f ~/.local/bin/mise ]]; then
- echo "Installing mise..."
- mkdir -p ~/.local/bin
- curl https://mise.jdx.dev/mise-latest-linux-x64 > ~/.local/bin/mise
- chmod +x ~/.local/bin/mise
- ~/.local/bin/mise install
- fi
- #compdef mise
- local curcontext="$curcontext"
- # caching config
- _usage_mise_cache_policy() {
- if [[ -z "${lifetime}" ]]; then
- lifetime=$((60*60*4)) # 4 hours
- fi
- local -a oldp
- oldp=( "$1"(Nms+${lifetime}) )
- (( $#oldp ))
- }
- _mise() {
- typeset -A opt_args
- local curcontext="$curcontext" spec cache_policy
- if ! command -v usage &> /dev/null; then
- echo >&2
- echo "Error: usage CLI not found. This is required for completions to work in mise." >&2
- echo "See https://usage.jdx.dev for more information." >&2
- return 1
- fi
- zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
- if [[ -z $cache_policy ]]; then
- zstyle ":completion:${curcontext}:" cache-policy _usage_mise_cache_policy
- fi
- if ( [[ -z "${_usage_mise_spec:-}" ]] || _cache_invalid _usage_mise_spec ) \
- && ! _retrieve_cache _usage_mise_spec;
- then
- spec="$(mise usage)"
- _store_cache _usage_mise_spec spec
- fi
- _arguments "*: :(($(usage complete-word --shell zsh -s "$spec" -- "${words[@]}" )))"
- return 0
- }
- if [ "$funcstack[1]" = "_mise" ]; then
- _mise "$@"
- else
- compdef _mise mise
- fi
|