40 lines
814 B
Text
40 lines
814 B
Text
|
#compdef dnote
|
||
|
|
||
|
local -a _1st_arguments
|
||
|
|
||
|
_1st_arguments=(
|
||
|
'add:add a new note'
|
||
|
'view:list books, notes, or view a content'
|
||
|
'edit:edit a note or a book'
|
||
|
'remove:remove a note or a book'
|
||
|
'find:find notes by keywords'
|
||
|
'sync:sync data with the server'
|
||
|
'login:login to the dnote server'
|
||
|
'logout:logout from the dnote server'
|
||
|
'version:print the current version'
|
||
|
'help:get help about any command'
|
||
|
)
|
||
|
|
||
|
get_booknames() {
|
||
|
local names=$(dnote view --name-only)
|
||
|
local -a ret
|
||
|
|
||
|
while read -r line; do
|
||
|
ret+=("${line}")
|
||
|
done <<< "$names"
|
||
|
|
||
|
echo "$ret"
|
||
|
}
|
||
|
|
||
|
if (( CURRENT == 2 )); then
|
||
|
_describe -t commands "dnote subcommand" _1st_arguments
|
||
|
return
|
||
|
elif (( CURRENT == 3 )); then
|
||
|
case "$words[2]" in
|
||
|
v|view|a|add)
|
||
|
_alternative \
|
||
|
"names:book names:($(get_booknames))"
|
||
|
esac
|
||
|
fi
|
||
|
|