migration

This commit is contained in:
2026-05-24 23:01:14 -07:00
parent 9efcc26da0
commit 7dc91ca752
16 changed files with 27124 additions and 1 deletions
+86
View File
@@ -0,0 +1,86 @@
#compdef himi
# himi zsh completion
# Drop in ~/.zfunc/ then run: compinit
_himi() {
local config_dir="${XDG_CONFIG_HOME:-$HOME/.config}/himi"
local lists_dir="${config_dir}/lists"
local pool_dir="${config_dir}/pool"
# Get template names from config
local -a templates
if [[ -f "${config_dir}/config.sh" ]]; then
templates=(${(f)"$(grep -E '^\s*"[a-z]+\|' "${config_dir}/config.sh" 2>/dev/null | sed 's/.*"\([a-z]*\)|.*/\1/')"})
fi
[[ ${#templates} -eq 0 ]] && templates=(default easy secure pin diceware)
# Get list names
local -a all_lists enabled_lists disabled_lists
disabled_lists=(all)
enabled_lists=(all)
if [[ -d "$lists_dir" ]]; then
for f in "$lists_dir"/*.txt(N); do
local name=${${f:t}%.txt}
all_lists+=($name)
if [[ -L "$pool_dir/$name.txt" ]]; then
enabled_lists+=($name)
else
disabled_lists+=($name)
fi
done
fi
local -a commands
commands=(
'add:Add and enable a word list'
'enable:Enable word list(s), or all'
'disable:Disable word list(s), or all'
'remove:Delete a word list permanently'
'rebuild:Rebuild pool from enabled lists'
'list:Show all lists and status'
'entropy:Show entropy for templates'
'test:Test a custom pattern'
'config:Edit config in $EDITOR'
'uninstall:Remove himi and all data'
)
_arguments -C \
'1:command:->cmd' \
'*:argument:->args' \
'-o[Output to stdout]' \
'-n[Number of secrets]:count:(1 3 5 10)' \
'-h[Show help]' \
'--help[Show help]'
case "$state" in
cmd)
_describe -t commands 'commands' commands
_describe -t templates 'templates' templates
;;
args)
case "${words[2]}" in
add)
_files -g '*.txt'
;;
enable)
_describe -t lists 'available lists' disabled_lists
;;
disable)
_describe -t lists 'enabled lists' enabled_lists
;;
remove)
_describe -t lists 'available lists' all_lists
;;
entropy)
_describe -t templates 'templates' templates
;;
test)
_message 'pattern (e.g. {word}-{num:3})'
;;
esac
;;
esac
}
_himi "$@"