81 lines
2.5 KiB
Bash
Executable File
81 lines
2.5 KiB
Bash
Executable File
# nirc-rs bash completion
|
|
# Generated for nirc 0.5.0
|
|
|
|
_nirc() {
|
|
local cur prev words cword
|
|
_init_completion -s || return
|
|
|
|
# Top-level commands (no subcommand context needed)
|
|
local commands=(
|
|
connect disconnect join part msg me say notice ctcp raw quote
|
|
nick away who whois names topic invite list kick op deop mode
|
|
oper kill kline unkline wallops ignore unblock
|
|
sendfile acceptfile listtransfers
|
|
win 'win list' 'win new' 'win close' 'win name'
|
|
jump jumpback close open winlist
|
|
set get alias unalias bind unbind eval source
|
|
echo clear clearall save help quit newconn server
|
|
matrix adc dc 'dc++' revolt stoat discord spacebar nerimity
|
|
url video image
|
|
)
|
|
|
|
# Matrix subcommands
|
|
local matrix_cmds=(
|
|
login logout create invite members whoami devices
|
|
verify verify-confirm verify-cancel react reply backfill
|
|
)
|
|
|
|
# ADC subcommands
|
|
local adc_cmds=(search users broadcast get download dl)
|
|
|
|
# Revolt / Discord / Stout / Spacebar / Nerimity subcommands (same shape)
|
|
local revolt_cmds=(join leave members servers)
|
|
|
|
# Protocols for /connect (bitchat removed in 0.10.2 — see NOTICES.md)
|
|
local protocols=(irc matrix adc dc 'dc++' discord stout spacebar nerimity revolt)
|
|
|
|
case ${prev} in
|
|
connect)
|
|
COMPREPLY=($(compgen -W "${protocols[*]}" -- "${cur}"))
|
|
return
|
|
;;
|
|
matrix)
|
|
COMPREPLY=($(compgen -W "${matrix_cmds[*]}" -- "${cur}"))
|
|
return
|
|
;;
|
|
adc|dc|'dc++')
|
|
COMPREPLY=($(compgen -W "${adc_cmds[*]}" -- "${cur}"))
|
|
return
|
|
;;
|
|
revolt|stoat|discord|spacebar|nerimity)
|
|
COMPREPLY=($(compgen -W "${revolt_cmds[*]}" -- "${cur}"))
|
|
return
|
|
;;
|
|
'matrix verify')
|
|
# Complete with nothing special — user provides a user_id
|
|
return
|
|
;;
|
|
'matrix react')
|
|
return
|
|
;;
|
|
'matrix reply')
|
|
return
|
|
;;
|
|
esac
|
|
|
|
# Default: offer all top-level commands
|
|
if [[ "${cur}" == /* ]]; then
|
|
COMPREPLY=($(compgen -W "${commands[*]}" -- "${cur}"))
|
|
fi
|
|
|
|
# Also complete file paths for certain commands
|
|
case ${words[1]} in
|
|
sendfile|acceptfile|source|'adc get'|'adc download'|'adc dl')
|
|
_filedir
|
|
return
|
|
;;
|
|
esac
|
|
}
|
|
|
|
complete -F _nirc nirc
|
|
complete -F _nirc nirc-rs |