edit:completion:arg-completer[ffsend] = [@words]{ fn spaces [n]{ repeat $n ' ' | joins '' } fn cand [text desc]{ edit:complex-candidate $text &display-suffix=' '(spaces (- 14 (wcswidth $text)))$desc } command = 'ffsend' for word $words[1:-1] { if (has-prefix $word '-') { break } command = $command';'$word } completions = [ &'ffsend'= { cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand debug 'View debug information' cand delete 'Delete a shared file' cand download 'Download files' cand exists 'Check whether a remote file exists' cand generate 'Generate assets' cand info 'Fetch info about a shared file' cand parameters 'Change parameters of a shared file' cand password 'Change the password of a shared file' cand upload 'Upload files' cand version 'Determine the Send server version' cand history 'View file history' cand help 'Prints this message or the help of the given subcommand(s)' } &'ffsend;debug'= { cand -h 'The remote host to upload to' cand --host 'The remote host to upload to' cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;delete'= { cand -o 'Specify the file owner token' cand --owner 'Specify the file owner token' cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;download'= { cand -p 'Unlock a password protected file' cand --password 'Unlock a password protected file' cand -o 'Output file or directory' cand --output 'Output file or directory' cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -e 'Extract an archived file' cand --extract 'Extract an archived file' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;exists'= { cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;generate'= { cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' cand completions 'Shell completions' cand help 'Prints this message or the help of the given subcommand(s)' } &'ffsend;generate;completions'= { cand -o 'Shell completion files output directory' cand --output 'Shell completion files output directory' cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;generate;help'= { cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;info'= { cand -o 'Specify the file owner token' cand --owner 'Specify the file owner token' cand -p 'Unlock a password protected file' cand --password 'Unlock a password protected file' cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;parameters'= { cand -o 'Specify the file owner token' cand --owner 'Specify the file owner token' cand -d 'The file download limit' cand --download-limit 'The file download limit' cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;password'= { cand -p 'Specify a password, do not prompt' cand --password 'Specify a password, do not prompt' cand -o 'Specify the file owner token' cand --owner 'Specify the file owner token' cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -P 'Protect the file with a generated passphrase' cand --gen-passphrase 'Protect the file with a generated passphrase' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;upload'= { cand -p 'Protect the file with a password' cand --password 'Protect the file with a password' cand -d 'The file download limit' cand --download-limit 'The file download limit' cand -e 'The file expiry time' cand --expiry-time 'The file expiry time' cand -h 'The remote host to upload to' cand --host 'The remote host to upload to' cand -n 'Rename the file being uploaded' cand --name 'Rename the file being uploaded' cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -P 'Protect the file with a generated passphrase' cand --gen-passphrase 'Protect the file with a generated passphrase' cand -o 'Open the share link in your browser' cand --open 'Open the share link in your browser' cand -a 'Archive the upload in a single file' cand --archive 'Archive the upload in a single file' cand -c 'Copy the share link to your clipboard' cand --copy 'Copy the share link to your clipboard' cand -C 'Copy the ffsend download command to your clipboard' cand --copy-cmd 'Copy the ffsend download command to your clipboard' cand -S 'Shorten share URLs with a public service' cand --shorten 'Shorten share URLs with a public service' cand -Q 'Print a QR code for the share URL' cand --qrcode 'Print a QR code for the share URL' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;version'= { cand -h 'The remote host to upload to' cand --host 'The remote host to upload to' cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;history'= { cand -R 'Remove history entry' cand --rm 'Remove history entry' cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -C 'Clear all history' cand --clear 'Clear all history' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } &'ffsend;help'= { cand -t 'Request timeout (0 to disable)' cand --timeout 'Request timeout (0 to disable)' cand -T 'Transfer timeout (0 to disable)' cand --transfer-timeout 'Transfer timeout (0 to disable)' cand -A 'Server API version to use, ''-'' to lookup' cand --api 'Server API version to use, ''-'' to lookup' cand --basic-auth 'HTTP basic authentication credentials' cand -H 'Use the specified history file' cand --history 'Use the specified history file' cand -h 'Prints help information' cand --help 'Prints help information' cand -V 'Prints version information' cand --version 'Prints version information' cand -f 'Force the action, ignore warnings' cand --force 'Force the action, ignore warnings' cand -I 'Not interactive, do not prompt' cand --no-interact 'Not interactive, do not prompt' cand -y 'Assume yes for prompts' cand --yes 'Assume yes for prompts' cand -q 'Produce output suitable for logging and automation' cand --quiet 'Produce output suitable for logging and automation' cand -v 'Enable verbose information and logging' cand --verbose 'Enable verbose information and logging' cand -i 'Don''t update local history for actions' cand --incognito 'Don''t update local history for actions' } ] $completions[$command] }