Package / arch (push) Canceled after 0s
Package / user (push) Canceled after 0s
Package / deb (push) Canceled after 0s
Package / freebsd (push) Canceled after 0s
Package / image (push) Canceled after 0s
Test / test (push) Canceled after 0s
Test / e2e (push) Canceled after 0s
210 lines
10 KiB
Plaintext
210 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' \
|
|
'(-V --version)'{-V,--version}
|