mirror of https://github.com/fail2ban/fail2ban
ENH: Add action elements to bash-completion
parent
cc463aa60d
commit
212d05dc0b
|
@ -19,6 +19,15 @@
|
||||||
__fail2ban_jails () {
|
__fail2ban_jails () {
|
||||||
"$1" status 2>/dev/null | awk -F"\t+" '/Jail list/{print $2}' | sed 's/, / /g'
|
"$1" status 2>/dev/null | awk -F"\t+" '/Jail list/{print $2}' | sed 's/, / /g'
|
||||||
}
|
}
|
||||||
|
__fail2ban_jail_actions () {
|
||||||
|
"$1" get "$2" actions 2>/dev/null | sed -n '$s/\([^,]\+\),\?/\1/gp'
|
||||||
|
}
|
||||||
|
__fail2ban_jail_action_properties () {
|
||||||
|
"$1" get "$2" actionproperties "$3" 2>/dev/null | sed -n '$s/\([^,]\+\),\?/\1/gp'
|
||||||
|
}
|
||||||
|
__fail2ban_jail_action_methods () {
|
||||||
|
"$1" get "$2" actionmethods "$3" 2>/dev/null | sed -n '$s/\([^,]\+\),\?/\1/gp'
|
||||||
|
}
|
||||||
|
|
||||||
_fail2ban () {
|
_fail2ban () {
|
||||||
local cur prev words cword
|
local cur prev words cword
|
||||||
|
@ -50,7 +59,7 @@ _fail2ban () {
|
||||||
_filedir
|
_filedir
|
||||||
return 0
|
return 0
|
||||||
elif [[ "$1" == *"fail2ban-client" ]];then
|
elif [[ "$1" == *"fail2ban-client" ]];then
|
||||||
local cmd jail
|
local cmd jail action
|
||||||
case $prev in
|
case $prev in
|
||||||
"$1")
|
"$1")
|
||||||
COMPREPLY=( $( compgen -W \
|
COMPREPLY=( $( compgen -W \
|
||||||
|
@ -80,6 +89,11 @@ _fail2ban () {
|
||||||
cmd="${words[$cword-3]}"
|
cmd="${words[$cword-3]}"
|
||||||
jail="${words[$cword-2]}"
|
jail="${words[$cword-2]}"
|
||||||
# Handle in section below
|
# Handle in section below
|
||||||
|
elif [[ "${words[$cword-4]}" == "set" || "${words[$cword-4]}" == "get" && ${words[$cword-2]} == action* ]];then
|
||||||
|
cmd="${words[$cword-4]}"
|
||||||
|
jail="${words[$cword-3]}"
|
||||||
|
action="${words[$cword-1]}"
|
||||||
|
# Handle in section below
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -106,6 +120,25 @@ _fail2ban () {
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
elif [[ -n "$jail" && -n "$action" ]];then
|
||||||
|
case ${words[$cwords-3]} in
|
||||||
|
action)
|
||||||
|
COMPREPLY=( $( compgen -W \
|
||||||
|
"$( __fail2ban_jail_action_properties "$1" "$jail" "$action")" \
|
||||||
|
-- "$cur" ) )
|
||||||
|
if [[ "$cmd" == "set" ]];then
|
||||||
|
COMPREPLY+=( $(compgen -W "$(__fail2ban_jail_action_methods "$1" "$jail" "$action")" -- "$cur" ) )
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
elif [[ -n "$jail" && $prev == action* ]];then
|
||||||
|
case $prev in
|
||||||
|
action|actionproperties|actionmethods)
|
||||||
|
COMPREPLY=( $(compgen -W "$(__fail2ban_jail_actions "$1" "$jail")" -- "$cur" ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
elif [[ -n "$jail" && "$cmd" == "set" ]];then
|
elif [[ -n "$jail" && "$cmd" == "set" ]];then
|
||||||
case $prev in
|
case $prev in
|
||||||
addlogpath)
|
addlogpath)
|
||||||
|
|
Loading…
Reference in New Issue