Files
logwisp/deploy/package/completion/_lw
T

211 lines
10 KiB
Plaintext

#compdef lw
# zsh completion for lw. Generated by make completion from lw's own tables: edit cmd/lw, not this file.
local -a described
case ${words[2]}:$CURRENT in
auth:2) ;;
auth:3)
described=(
'add-user:Add a user to a credentials file, or replace its password'
'remove-user:Remove a user from a credentials file'
'token:Log in to an http sink or http_chain source and print a bearer token'
'stream:Log in to a tcp sink and copy its stream to stdout until interrupted'
)
_describe -t commands 'lw auth command' described
return ;;
auth:*)
shift 2 words
(( CURRENT -= 2 ))
case ${words[1]} in
add-user) _arguments -S \
'--credentials=[credentials file, created when missing]:value:_default' \
'--generate[generate a new password, replacing any --password-file; needed to rotate without one]' \
'--password-file=[read the password from file when it exists, else write a generated one there]:value:_default' \
'(-u --user)'{-u=,--user=}'[user name]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
remove-user) _arguments -S \
'--credentials=[credentials file]:value:_default' \
'(-u --user)'{-u=,--user=}'[user name]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
token) _arguments -S \
'--ca-file=[CA file that verifies the server (default: system roots)]:value:_default' \
'--cert-file=[client certificate file, for listeners with tls.client_auth]:value:_default' \
'--key-file=[client key file]:value:_default' \
'--password-file=[file holding the password]:value:_default' \
'--pin-sha256=[sha256//BASE64 pin of the server key, in place of --ca-file (a self_signed listener logs it)]:value:_default' \
'--server-name=[name the server certificate must carry (default: the host)]:value:_default' \
'--unbound[log in without channel binding, to an http sink behind a TLS-terminating proxy (auth.trusted_proxies)]' \
'--url=[listener URL, https://HOST:PORT or https://[IPV6\]:PORT (with --unbound, a proxy'\''s mount URL may carry a path)]:value:_default' \
'(-u --user)'{-u=,--user=}'[user name]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
stream) _arguments -S \
'--addr=[tcp sink address, HOST:PORT or [IPV6\]:PORT]:value:_default' \
'--ca-file=[CA file that verifies the server (default: system roots)]:value:_default' \
'--cert-file=[client certificate file, for listeners with tls.client_auth]:value:_default' \
'--key-file=[client key file]:value:_default' \
'--password-file=[file holding the password]:value:_default' \
'--pin-sha256=[sha256//BASE64 pin of the server key, in place of --ca-file (a self_signed listener logs it)]:value:_default' \
'--server-name=[name the server certificate must carry (default: the host)]:value:_default' \
'(-u --user)'{-u=,--user=}'[user name]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
esac
return ;;
tls:2) ;;
tls:3)
described=(
'ca:Create a certificate authority, DIR/ca.crt and DIR/ca.key, that signs certificates only'
'cert:Issue a certificate and key, OUT/NAME.crt and OUT/NAME.key, from DIR/ca.crt and DIR/ca.key'
)
_describe -t commands 'lw tls command' described
return ;;
tls:*)
shift 2 words
(( CURRENT -= 2 ))
case ${words[1]} in
ca) _arguments -S \
'--days=[validity in n days]:value:_default' \
'--dir=[directory to write ca.crt and ca.key in, created when missing]:directory:_files -/' \
'--name=[subject common name]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
cert) _arguments -S \
'--ca-dir=[directory holding ca.crt and ca.key (lw tls ca)]:directory:_files -/' \
'--client[for dialers presenting a certificate (TLS client authentication)]' \
'--days=[validity in n days, at most the CA'\''s]:value:_default' \
'--hosts=[DNS names and IP addresses, '\'','\'' between them (default with --server: --name)]:value:_default' \
'--name=[subject common name, the mtls identity, and the file names]:value:_default' \
'--out=[directory to write in (default: --ca-dir)]:directory:_files -/' \
'--server[for listeners (TLS server authentication)]' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
esac
return ;;
preset:2) ;;
preset:3)
described=(
'pipe:Standard input to standard output, line for line: lw without a file'
'tail:Follow files to standard output, like tail -F'
'serve:Serve files or standard input live: a browser viewer at /, SSE at /stream'
'edge:Forward files or standard input to an aggregator over TLS, authenticated'
'aggregator:Receive from edges over TLS, authenticated, to files or standard output'
)
_describe -t commands 'lw preset command' described
return ;;
preset:*)
shift 2 words
(( CURRENT -= 2 ))
case ${words[1]} in
pipe) _arguments -S \
'--format=[raw|txt|json]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
tail) _arguments -S \
'--format=[raw|txt|json]:value:_default' \
'--from=[start|end: where reading a file starts]:value:_default' \
'--path=[file, directory (its files) or glob to follow]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
serve) _arguments -S \
'--allow=[addresses or CIDRs that may connect, of listen'\''s family (either behind proxy=); default: all; '\'','\'' between them]:value:_default' \
'--cert=[certificate file, for tls=files]:value:_default' \
'--deny=[addresses or CIDRs refused, allow or not; '\'','\'' between them]:value:_default' \
'--format=[raw|txt|json]:value:_default' \
'--from=[start|end: where reading a file starts]:value:_default' \
'--hosts=[names and addresses, beyond this host'\''s, of a self or issuer certificate; '\'','\'' between them]:value:_default' \
'--issuer_cert=[CA certificate file (lw tls ca), for tls=issuer]:value:_default' \
'--issuer_key=[CA key file, for tls=issuer]:value:_default' \
'--key=[key file, for tls=files]:value:_default' \
'--listen=[HOST:PORT; [IPV6\]:PORT]:value:_default' \
'--path=[file, directory (its files) or glob to follow; default: standard input]:value:_default' \
'--proxy=[addresses or CIDRs of the TLS-terminating proxies browsers come through; '\'','\'' between them]:value:_default' \
'--tls=[off|self|issuer|files: a certificate made at startup (self-signed or from issuer_*), or files]:value:_default' \
'--users=[credentials file (lw auth add-user): readers log in with SCRAM]:value:_default' \
'--viewer=[true: the login page and viewer for users, behind proxy; without users the viewer is always on]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
edge) _arguments -S \
'--ca=[CA file that verifies the aggregator; default: system roots]:value:_default' \
'--cert=[client certificate file, for an aggregator with client_ca]:value:_default' \
'--from=[start|end: where reading a file starts]:value:_default' \
'--key=[client key file]:value:_default' \
'--node=[origin label; default: this host'\''s name]:value:_default' \
'--password_file=[file holding the SCRAM password]:value:_default' \
'--path=[file, directory (its files) or glob to follow; default: standard input]:value:_default' \
'--pin=[sha256//BASE64 of the aggregator'\''s key, which it logs with tls=self]:value:_default' \
'--server_name=[name the aggregator'\''s certificate carries; default: to'\''s host]:value:_default' \
'--to=[the aggregator'\''s HOST:PORT; [IPV6\]:PORT]:value:_default' \
'--transport=[tcp|http: tcp_chain or http_chain]:value:_default' \
'(-u --user)'{-u=,--user=}'[SCRAM user (lw auth add-user on the aggregator)]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
aggregator) _arguments -S \
'--allow=[addresses or CIDRs that may connect, of listen'\''s family (either behind proxy=); default: all; '\'','\'' between them]:value:_default' \
'--cert=[certificate file, for tls=files]:value:_default' \
'--client_ca=[CA file that verifies edge certificates (mTLS)]:value:_default' \
'--deny=[addresses or CIDRs refused, allow or not; '\'','\'' between them]:value:_default' \
'--format=[raw|txt|json]:value:_default' \
'--hosts=[names and addresses, beyond this host'\''s, of a self or issuer certificate; '\'','\'' between them]:value:_default' \
'--issuer_cert=[CA certificate file (lw tls ca), for tls=issuer]:value:_default' \
'--issuer_key=[CA key file, for tls=issuer]:value:_default' \
'--key=[key file, for tls=files]:value:_default' \
'--listen=[HOST:PORT; [IPV6\]:PORT; [::\] for IPv6 only]:value:_default' \
'--out=[directory for the received entries; default: standard output]:value:_default' \
'--tls=[self|issuer|files: a certificate made at startup (self-signed or from issuer_*), or files]:value:_default' \
'--transport=[tcp|http: tcp_chain or http_chain]:value:_default' \
'--users=[credentials file (lw auth add-user): edges log in with SCRAM]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
esac
return ;;
config:2) ;;
config:3)
described=(
'init:Write the annotated default configuration, to edit and run'
)
_describe -t commands 'lw config command' described
return ;;
config:*)
shift 2 words
(( CURRENT -= 2 ))
case ${words[1]} in
init) _arguments -S \
'--out=[file to write (default: ~/.config/logwisp/logwisp.toml)]:value:_default' \
'(-h --help)'{-h,--help}'[print the flags]' ;;
esac
return ;;
esac
if (( CURRENT == 2 )) && [[ $PREFIX != -* ]]; then
described=(
'auth:SCRAM users, bearer tokens, tcp sink viewing'
'tls:A CA and certificates for TLS and mTLS'
'preset:Show the pipeline a preset makes, as TOML'
'config:Place the annotated default configuration'
'help:Print the help and exit'
)
_describe -t commands 'lw command' described
return
fi
_arguments -S \
'--auto_reload' \
'(-t --check)'{-t,--check} \
'--color' \
'(-c --config)'{-c=,--config=}':value:_default' \
'--dump' \
'*--filter=:value:_default' \
'*--format=:value:_default' \
'*--heartbeat=:value:_default' \
'(-h --help)'{-h,--help} \
'--logging.console.target=:value:_default' \
'--logging.file.directory=:directory:_files -/' \
'--logging.file.max_size_mb=:value:_default' \
'--logging.file.max_total_size_mb=:value:_default' \
'--logging.file.name=:value:_default' \
'--logging.file.retention_hours=:value:_default' \
'--logging.format=:value:_default' \
'--logging.level=:value:_default' \
'--logging.output=:value:_default' \
'--logging.sanitization=:value:_default' \
'*--pipeline=:value:_default' \
'*'{-p=,--preset=}':preset:(pipe tail serve edge aggregator)' \
'(-q --quiet)'{-q,--quiet} \
'*--rate-limit=:value:_default' \
'--schema' \
'*--sink=:value:_default' \
'*--source=:value:_default' \
'--status_reporter' \
'(-T --tui)'{-T,--tui} \
'(-V --version)'{-V,--version}