mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-11 15:53:37 +08:00
9b4c4ee7b6
As pointed out by faho, the completions will be deduplicated by the completion mechanics. We don't use this list directly except to pass it up the chain to the shell, so there's no benefit to shelling out to eagerly deduplicate the list. Plus, as of 3.6.0, even manual `complete -C"..."` invocations now deduplicate results the same as if completions were triggered.
113 lines
8.4 KiB
Fish
113 lines
8.4 KiB
Fish
function __fail2ban_jails
|
|
# No need to deduplicate because fish will take care of that for us
|
|
path basename {,/usr/local}/etc/fail2ban/filter.d/*.{conf,local} | path change-extension ""
|
|
end
|
|
|
|
function __fail2ban_actions
|
|
# No need to deduplicate because fish will take care of that for us
|
|
path basename {,/usr/local}/etc/fail2ban/action.d/*.{conf,local} | path change-extension ""
|
|
end
|
|
|
|
# basic options
|
|
complete -c fail2ban-client -s c -l conf -d "Configuration dir"
|
|
complete -c fail2ban-client -s s -l socket -d "Socket path"
|
|
complete -c fail2ban-client -s p -l pidfile -d "Pidfile path"
|
|
complete -c fail2ban-client -l pname -d "Name of the process"
|
|
complete -c fail2ban-client -l loglevel -d "loglevel of client" -xa "CRITICAL ERROR WARNING NOTICE INFO DEBUG TRACEDEBUG HEAVYDEBUG"
|
|
complete -c fail2ban-client -l logtarget -d "Logging target" -a "stdout stderr syslog sysout" # or path
|
|
complete -c fail2ban-client -l logtarget -d "Syslogsocket" -a "auto" # or path
|
|
complete -c fail2ban-client -s d -d "Dump configuration"
|
|
complete -c fail2ban-client -l dp -l dump-pretty -d "Dump configuration (pretty)"
|
|
complete -c fail2ban-client -s t -l test -d "Test configuration"
|
|
complete -c fail2ban-client -s i -d "Run in interactive mode"
|
|
complete -c fail2ban-client -s v -d "Increase verbosity"
|
|
complete -c fail2ban-client -s q -d "Decrease verbosity"
|
|
complete -c fail2ban-client -s x -d "Force execution of server"
|
|
complete -c fail2ban-client -s b -d "Start server in background (default)"
|
|
complete -c fail2ban-client -s f -d "Start server in foreground"
|
|
complete -c fail2ban-client -l str2sec -d "Convert time abbr format to secs"
|
|
complete -c fail2ban-client -s h -l help -d "Display help message"
|
|
complete -c fail2ban-client -s V -l version -d "Display client version"
|
|
|
|
# subcommands
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "start" -d "Start fail2ban server or jail"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "restart" -d "Restart server or jail"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "reload" -d "Reload server configuration"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "stop" -d "Stop fail2ban server or jail"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "unban" -d "Unban ip address(es)"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "banned" -d "List jails w/ their banned IPs"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "status" -d "Get server or jail status"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "ping" -d "Check if server is alive"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "help" -d "Prints usage synopsis"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "version" -d "Prints server version"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "set"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "get"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "flushlogs" -d "Flushes log files and reopens"
|
|
complete -c fail2ban-client -n __fish_is_first_token -xa "add"
|
|
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from start" -xa "(__fail2ban_jails)"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from stop" -xa "(__fail2ban_jails)"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from status" -xa "(__fail2ban_jails)"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from restart" -xa "(__fail2ban_jails)"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from reload" -xa "(__fail2ban_jails)"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from add" -xa "(__fail2ban_jails)"
|
|
|
|
# restart options
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from restart" -l unban
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from reload" -l if-exists
|
|
|
|
# reload options
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from restart" -l restart
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from reload" -l unban
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from reload" -l all
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from reload" -l if-exists
|
|
|
|
# unban options
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from unban" -l all
|
|
|
|
# get/set loglevel
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get" -n "__fish_prev_arg_in get" -xa loglevel -d "Get server log level"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in set" -xa loglevel -d "Change server log level"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in loglevel" -xa "CRITICAL ERROR WARNING NOTICE INFO DEBUG TRACEDEBUG HEAVYDEBUG"
|
|
|
|
# get/set logtarget
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get" -n "__fish_prev_arg_in get" -xa logtarget -d "Get server log output"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in set" -xa logtarget -d "Change server log output"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in logtarget" -a "STDOUT STDERR SYSLOG SYSTEMD-JOURNAL" # or path
|
|
|
|
# get/set syslogsocket
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get" -n "__fish_prev_arg_in get" -xa syslogsocket -d "Get server syslog socket"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in set" -xa syslogsocket -d "Change server syslog socket"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in syslogsocket" -a "auto" # or path
|
|
|
|
# get/set dbfile
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get" -n "__fish_prev_arg_in get" -xa dbfile -d "Get server db path"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in set" -xa dbfile -d "Change server db path"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in dbfile" -a "None" # or path
|
|
|
|
# get/set dbmaxmatches
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get" -n "__fish_prev_arg_in get" -xa dbmaxmatches -d "Get max matches stored per ticket"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in set" -xa dbmaxmatches -d "Set max matches stored per ticket"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in dbmaxmatches" -xa "(seq 0 100)"
|
|
|
|
# get/set dbpurgeage
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get" -n "__fish_prev_arg_in get" -xa dbpurgeage -d "Get secs ban history will be kept"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in set" -xa dbpurgeage -d "Set secs ban history will be kept"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in dbpurgeage" -xa "(seq 0 30 3600)"
|
|
|
|
# get/set <jail> options
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set get" -n "__fish_prev_arg_in set get" -xa "(__fail2ban_jails)"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_is_nth_token 3" -xa "idle ignoreself addignoreip delignoreip ignorecommand ignorecache addlogpath dellogpath logencoding addjournalmatch deljournalmatch addfailregex delfailregex bantime datepattern usedns attempt banip unbanip maxretry maxmatches maxlines addaction delaction action"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get" -n "__fish_is_nth_token 3" -xa "banned logpath logencoding journalmatch ignoreself ignoreip ignorecommand failregex ignoreregex findtime bantime datepattern usedns banip maxretry maxmatches maxlines actions action actionproperties actionmethods action"
|
|
|
|
# complete actions for `get/set jail action/actionproperties/actionmethods` and `set jail addaction/delaction`
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get set" -n "__fish_prev_arg_in action{,properties,methods}" -n "__fish_is_nth_token 4" -xa "(__fail2ban_actions)"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from set" -n "__fish_prev_arg_in {add,del}action" -n "__fish_is_nth_token 4" -xa "(__fail2ban_actions)"
|
|
|
|
# complete action commands for `get/set jail action <action>`
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get set" -n "__fish_seen_subcommand_from action" -n "__fish_is_nth_token 5" -xa "actionstart actionstop actioncheck actionban actionunban timeout"
|
|
|
|
# specific enumerable jail properties
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get set" -n "__fish_prev_arg_in idle" -xa "on off"
|
|
complete -c fail2ban-client -n "__fish_seen_subcommand_from get set" -n "__fish_prev_arg_in ignoreself" -xa "true false"
|