parent
6a6e4a9d5f
commit
2bcf6ca857
105
src/_openvpn3
105
src/_openvpn3
|
|
@ -49,7 +49,7 @@ local sessions_names=$(openvpn3 sessions-list | grep 'Session name:' | awk '{pri
|
|||
local configs_names=$(openvpn3 configs-list | awk 'count&&!--count; /\/net\/openvpn\//{count=2}' | awk '{print $1}' | xargs)
|
||||
local configs_paths=$(openvpn3 configs-list | grep '/net/openvpn/v3/configuration/' | xargs)
|
||||
|
||||
_openvpn3_config-acl(){
|
||||
_openvpn3_config-acl() {
|
||||
_arguments \
|
||||
{-s,--show}"[Show the current access control lists]" \
|
||||
{-o,--path}"[OBJ-PATH Path to the configuration in the configuration manager]: :($configs_paths)" \
|
||||
|
|
@ -60,18 +60,18 @@ _openvpn3_config-acl(){
|
|||
{-G,--grant}"[<UID | username> Grant this user access to this configuration profile]" \
|
||||
"--public-access[<true|false> Set/unset the public access flag]" \
|
||||
"--lock-down[<true|false> Set/unset the lock-down flag.Will disable config retrieval for users]: :(true false)" \
|
||||
"--config-path[OBJ-PATH Alias for --path]: :($configs_paths)" \
|
||||
"--config-path[OBJ-PATH Alias for --path]: :($configs_paths)"
|
||||
}
|
||||
|
||||
_openvpn3_config-import(){
|
||||
_openvpn3_config-import() {
|
||||
_arguments \
|
||||
{-p,--persistent}"[Make the configuration profile persistent through service restarts]" \
|
||||
{-n,--name}"[NAME Provide a different name for the configuration (default: CFG-FILE)]" \
|
||||
{-h,--help}"[This help screen]" \
|
||||
{-c,--config}"[CFG-FILE Configuration file to import]: :_files" \
|
||||
{-c,--config}"[CFG-FILE Configuration file to import]: :_files"
|
||||
}
|
||||
|
||||
_openvpn3_config-manage(){
|
||||
_openvpn3_config-manage() {
|
||||
_arguments \
|
||||
{-s,--show}"[Show current configuration options]" \
|
||||
{-r,--rename}"[NEW-CONFIG-NAME Renames the configuration]" \
|
||||
|
|
@ -87,7 +87,7 @@ _openvpn3_config-manage(){
|
|||
"--proxy-password[<value> HTTP Proxy password to use for authentication]" \
|
||||
"--proxy-host[<value> HTTP Proxy to connect via, overrides configuration file http-proxy]" \
|
||||
"--proxy-auth-cleartext[<true|false> Adds the boolean override proxy-auth-cleartext]: :(true false)" \
|
||||
"--proto-override[<tcp|udp> Overrides the protocol being used]: :(tcp upd)" \
|
||||
"--proto-override[<tcp|udp> Overrides the protocol being used]: :(tcp udp)" \
|
||||
"--port-override[<value> Replace the remote port, connecting to this port instead of the configuration value]" \
|
||||
"--persist-tun[<true|false> Adds the boolean override persist-tun]: :(true false)" \
|
||||
"--ipv6[<yes|no|default> Sets the IPv6 policy of the client]: :(yes no default)" \
|
||||
|
|
@ -98,47 +98,47 @@ _openvpn3_config-manage(){
|
|||
"--config-path[CONFIG-PATH Alias for --path]: :($configs_paths)" \
|
||||
"--auth-fail-retry[<true|false> Adds the boolean override auth-fail-retry]: :(true false)" \
|
||||
"--allow-compression[<no asym yes> Set compression mode]: :(no asym yes)" \
|
||||
}
|
||||
}
|
||||
|
||||
_openvpn3_config-remove(){
|
||||
_openvpn3_config-remove() {
|
||||
_arguments \
|
||||
{-o,--path}"[OBJ-PATH Path to the configuration in the configuration manager]: :($configs_paths)" \
|
||||
{-h,--help}"[This help screen]" \
|
||||
{-c,--config}"[CONFIG-NAME Alternative to --path, where configuration profile name is used instead]: :($configs_names)" \
|
||||
"--force[Force the deletion process without asking for confirmation]" \
|
||||
"--config-path[OBJ-PATH Alias for --path]: :($configs_paths)" \
|
||||
"--config-path[OBJ-PATH Alias for --path]: :($configs_paths)"
|
||||
}
|
||||
|
||||
_openvpn3_config-show(){
|
||||
_openvpn3_config-show() {
|
||||
_arguments \
|
||||
{-o,--path}"[OBJ-PATH Path to the configuration in the configuration manager]: :($configs_paths)" \
|
||||
{-j,--json}"[Dump the configuration in JSON format]" \
|
||||
{-h,--help}"[This help screen]" \
|
||||
{-c,--config}"[CONFIG-NAME Alternative to --path, where configuration profile name is used instead]: :($configs_names)" \
|
||||
"--config-path[OBJ-PATH Alias for --path]: :($configs_paths)" \
|
||||
"--config-path[OBJ-PATH Alias for --path]: :($configs_paths)"
|
||||
}
|
||||
|
||||
_openvpn3_configs-list(){
|
||||
_openvpn3_configs-list() {
|
||||
_arguments \
|
||||
{-h,--help}"[This help screen]" \
|
||||
{-h,--help}"[This help screen]"
|
||||
}
|
||||
|
||||
_openvpn3_help(){
|
||||
_openvpn3_help() {
|
||||
_arguments \
|
||||
{-h,--help}"[This help screen]" \
|
||||
{-h,--help}"[This help screen]"
|
||||
}
|
||||
|
||||
_openvpn3_log(){
|
||||
_openvpn3_log() {
|
||||
_arguments \
|
||||
{-h,--help}"[This help screen]" \
|
||||
{-c,--config}"[CONFIG-NAME Alternative to --session-path, where configuration profile name is used instead]: :($sessions_configs_names $configs_names)" \
|
||||
{-I,--interface}"[INTERFACE Alternative to --session-path, where tun interface name is used instead]: :($sessions_interfaces)" \
|
||||
"--session-path[SESSION-PATH Receive log events for a specific session]: :($sessions_paths)" \
|
||||
"--log-level[LOG-LEVEL Set the log verbosity level of messages to be shown (default: 4)]" \
|
||||
"--config-events[Receive log events issued by the configuration manager]" \
|
||||
"--config-events[Receive log events issued by the configuration manager]"
|
||||
}
|
||||
|
||||
_openvpn3__session-acl(){
|
||||
_openvpn3_session-acl() {
|
||||
_arguments \
|
||||
{-s,--show}"[Show the current access control lists]" \
|
||||
{-o,--path}"[SESSION-PATH Path to the session in the session manager]: :($sessions_paths)" \
|
||||
|
|
@ -149,10 +149,10 @@ _openvpn3__session-acl(){
|
|||
{-G,--grant}"[<UID | username> Grant this user access to this session]" \
|
||||
"--session-path[SESSION-PATH Alias for --path]: :($sessions_paths)" \
|
||||
"--public-access[<true|false> Set/unset the public access flag]: :(true false)" \
|
||||
"--allow-log-access[<true|false> Can users granted access also access the session log?]: :(true false)" \
|
||||
"--allow-log-access[<true|false> Can users granted access also access the session log?]: :(true false)"
|
||||
}
|
||||
|
||||
_openvpn3_session-manage(){
|
||||
_openvpn3_session-manage() {
|
||||
_arguments \
|
||||
{-o,--path}"[SESSION-PATH Path to the session in the session manager]: :($sessions_paths)" \
|
||||
{-h,--help}"[This help screen]" \
|
||||
|
|
@ -163,33 +163,33 @@ _openvpn3_session-manage(){
|
|||
{-D,--disconnect}"[Disconnects a VPN session]" \
|
||||
"--session-path[SESSION-PATH Alias for --path]: :($sessions_paths)" \
|
||||
"--restart[Disconnect and reconnect a running VPN session]" \
|
||||
"--cleanup[Clean up stale sessions]" \
|
||||
"--cleanup[Clean up stale sessions]"
|
||||
}
|
||||
|
||||
_openvpn3_session-start(){
|
||||
_openvpn3_session-start() {
|
||||
_arguments \
|
||||
{-p,--config-path}"[CONFIG-PATH Configuration path to an already imported configuration]: :($configs_paths)" \
|
||||
{-h,--help}"[This help screen]" \
|
||||
{-c,--config}"[CONFIG-FILE Configuration file to start directly]: :_files" \
|
||||
"--persist-tun[Enforces persistent tun/seamless tunnel (requires --config)]" \
|
||||
"--persist-tun[Enforces persistent tun/seamless tunnel (requires --config)]"
|
||||
}
|
||||
|
||||
_openvpn3_session-stats(){
|
||||
_openvpn3_session-stats() {
|
||||
_arguments \
|
||||
{-o,--path}"[SESSION-PATH Path to the configuration in the configuration manager]: :($sessions_paths)" \
|
||||
{-j,--json}"[Dump the configuration in JSON format]" \
|
||||
{-h,--help}"[This help screen]" \
|
||||
{-c,--config}"[CONFIG-NAME Alternative to --path, where configuration profile name is used instead]: :($sessions_configs_names)" \
|
||||
{-I,--interface}"[INTERFACE Alternative to --path, where tun interface name is used instead]: :($sessions_interfaces)" \
|
||||
"--session-path[SESSION-PATH Alias for --path]: :($sessions_paths)" \
|
||||
"--session-path[SESSION-PATH Alias for --path]: :($sessions_paths)"
|
||||
}
|
||||
|
||||
_openvpn3_sessions-list(){
|
||||
_openvpn3_sessions-list() {
|
||||
_arguments \
|
||||
{-h,--help}"[This help screen]" \
|
||||
{-h,--help}"[This help screen]"
|
||||
}
|
||||
|
||||
_openvpn3_shell-completion(){
|
||||
_openvpn3_shell-completion() {
|
||||
_arguments \
|
||||
{-h,--help}"[This help screen]" \
|
||||
"--list-commands[List all available commands]" \
|
||||
|
|
@ -197,34 +197,32 @@ _openvpn3_shell-completion(){
|
|||
"--arg-helper[OPTION Used together with --list-options, lists value hint to an option]"
|
||||
}
|
||||
|
||||
_openvpn3_version(){
|
||||
_openvpn3_version() {
|
||||
_arguments \
|
||||
{-h,--help}"[This help screen]" \
|
||||
{-h,--help}"[This help screen]"
|
||||
}
|
||||
|
||||
|
||||
_openvpn3_command(){
|
||||
local -a _openvpn3_cmds
|
||||
_openvpn3_cmds=(
|
||||
"config-acl: Manage access control lists for configurations" \
|
||||
"config-import: Import configuration profiles" \
|
||||
"config-manage: Manage configuration properties" \
|
||||
"config-remove: Remove an available configuration profile" \
|
||||
"config-show: Show/dump a configuration profile" \
|
||||
"configs-list: List all available configuration profiles" \
|
||||
"help: This help screen" \
|
||||
"log: Receive log events as they occur" \
|
||||
"session-acl: Manage access control lists for sessions" \
|
||||
"session-manage: Manage VPN sessions" \
|
||||
"session-start: Start a new VPN session" \
|
||||
"session-stats: Show session statistics" \
|
||||
"sessions-list: List available VPN sessions" \
|
||||
"shell-completion: Helper function to provide shell completion data" \
|
||||
"version: Show program version information" \
|
||||
_openvpn3_command() {
|
||||
local -a openvpn3_cmds=(
|
||||
"config-acl: Manage access control lists for configurations"
|
||||
"config-import: Import configuration profiles"
|
||||
"config-manage: Manage configuration properties"
|
||||
"config-remove: Remove an available configuration profile"
|
||||
"config-show: Show/dump a configuration profile"
|
||||
"configs-list: List all available configuration profiles"
|
||||
"help: This help screen"
|
||||
"log: Receive log events as they occur"
|
||||
"session-acl: Manage access control lists for sessions"
|
||||
"session-manage: Manage VPN sessions"
|
||||
"session-start: Start a new VPN session"
|
||||
"session-stats: Show session statistics"
|
||||
"sessions-list: List available VPN sessions"
|
||||
"shell-completion: Helper function to provide shell completion data"
|
||||
"version: Show program version information"
|
||||
)
|
||||
|
||||
if ((CURRENT == 1)); then
|
||||
_describe -t commands 'openvpn3 commands' _openvpn3_cmds
|
||||
_describe -t commands 'openvpn3 commands' openvpn3_cmds
|
||||
else
|
||||
local curcontext="$curcontext"
|
||||
cmd="${${_openvpn3_cmds[(r)$words[1]:*]%%:*}}"
|
||||
|
|
@ -244,3 +242,10 @@ _arguments \
|
|||
{-h,--help}"[that This help screen]" \
|
||||
"*::openvpn3 commands:_openvpn3_command" \
|
||||
|
||||
# Local Variables:
|
||||
# mode: Shell-Script
|
||||
# sh-indentation: 2
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 2
|
||||
# End:
|
||||
# vim: ft=zsh sw=2 ts=2 et
|
||||
|
|
|
|||
Loading…
Reference in New Issue