Migrate from .stow-rename to --dotfiles
This commit is contained in:
parent
f379471a5f
commit
bddf272d82
3 changed files with 16 additions and 6 deletions
35
dot-config/zsh/functions/_dots
Normal file
35
dot-config/zsh/functions/_dots
Normal file
|
@ -0,0 +1,35 @@
|
|||
#compdef dots
|
||||
: ${DOTFILES:=~/dotfiles}
|
||||
local context state state_descr line
|
||||
typeset -A opt_args
|
||||
|
||||
local repo
|
||||
local -a commands repos new_repos
|
||||
commands=(
|
||||
bootstrap:'set up initial dotfiles on a new system'
|
||||
clone:'download dotfiles packages over Git'
|
||||
fetch:'retrieve updates to your packages'
|
||||
link:'install downloaded packages into your ~'
|
||||
pull:'fetch and apply package updates'
|
||||
status:'check whether your packages have changes'
|
||||
)
|
||||
if ! _retrieve_cache dots-repositories; then
|
||||
repos=($(curl -s -X GET "https://git.00dani.me/api/v1/orgs/dot/repos" -H "accept: application/json" | jq -r '.[].name'))
|
||||
_store_cache dots-repositories repos
|
||||
fi
|
||||
|
||||
for repo in $repos; [[ -d $DOTFILES/$repo ]] || new_repos+=($repo)
|
||||
_arguments '1:cmds:->cmds' '*:: :->args'
|
||||
case $state in
|
||||
cmds) _describe -t commands command commands ;;
|
||||
args) case $line[1] in
|
||||
bootstrap) _nothing ;; # no more arguments!
|
||||
clone)
|
||||
if (( $#new_repos )); then
|
||||
_values -w package $new_repos
|
||||
else
|
||||
_message 'all known packages are already installed, you can still enter a git url manually'
|
||||
fi ;;
|
||||
fetch|link|pull|st|status) _values -w package $DOTFILES/*(/:t) ;;
|
||||
esac ;;
|
||||
esac
|
Loading…
Add table
Add a link
Reference in a new issue