# Changelog for [`asfa`](https://github.com/obreitwi/asfa) ## v0.10.0 (2024-05-27) * Disable unnecessary regex features to reduce binary size by ~20% (by @jirutka) * Cosmetic: Ensure verification separator is at least ellipsis ("..."). * Add preliminary nix support. ## v0.9.1 (2021-12-28) * Updated dependencies * Fix: Added missing feature flags for clap3 release candidates * Fix: Tests not running by disabling timestamps in `simple_logger` ## v0.9.0 (2021-08-03) * `clean`/`list`-command: * Fix having to supply negative indices after double dash. * Add `rename`/`mv` command. * Rename a remote file after uploading. * Files can be selected by index or via local file with the same hash. ## v0.8.0 (2021-06-15) * `push`-command: * Provide more detailed error message if creation of remote file fails. * Add `details` config option. * If true, act as if `--details` is given on command line. * If set, `-D`/`--no-details` can be used to overwrite yet again. * Have `-qqq` disable all logging and output messages. * Add new command: `check` * Same as list, it can be used to check if a given set of local files have already been uploaded. * If so, check prints similar information as list. * In case at least one file is not found, exit with return code 1 (i.e. for scripts when invoked with `-qqq`). * Since both `check` and `clean` command begin with `c`, another letter is needed to differentiate their short forms. * `list`-command: * Fix interaction between `--reverse` and `--last`. * Add `--first`-argument that works opposite of last. ## v0.7.5 (2021-05-25) * Attempt to retrieve username from openSSH-config prior to falling back on system. * Update dependencies ## v0.7.4 (2021-03-27) * `push`-command: * Remove need to seperate single alias from single file by dashes if alias specified first. * Previously: `asfa push --alias my-alias.txt -- my-original-file.txt` * Now: `asfa push --alias my-alias.txt my-original-file.txt` * Check response for errors regaring `atd` not running if `--expire` specified. * Now supports a default setting for `--expire` in the config. * Same as auth, both a global setting and host-specific settings are supported. * Any set default argument can be disabled per host or command line by specifying `none` as argument. * `list`-command: * More informative message if no files are present on remote site. * tests: * Fix `atd` not running in tests, but tests still passing because file got deleted differently. ## v0.7.3 (2021-03-04) * Internal: * Removed code-smell reported by [clippy](https://github.com/rust-lang/rust-clippy). * `list`-command: * Disable framed-box layout if piping to another program. * Separate different fields by tabs. * Allows for easier parsing. * Fix cryptic error message if there are no remote files. * config: If defined, use hostname to query openSSH config. * This allows for several distinct host-entries to be defined for the same physical host. ## v0.7.2 (2021-01-29) * Switch CI from Travis to Github Actions. * `push`-command: When specifying `--expire`, move notification to the beginning of the line. This This allows for easier box copying of links when uploading several files at once. * `list`-command: When specifying `--detail`, fix files below one KiB having no unit suffix. Now the suffix is `B`. * If not specified explicitly, get hostname and port for host-entry from openSSH config. * Fix connection error when openSSH offers too many pubkeys. ## v0.7.1 (2021-01-26) * Fix formatting error when displaying file sizes that are >=999.5 {K,M,G,T,…}, breaking table formatting. * `list`-command: * Fix displaying all files if filter does not match anything. * `push`-command: * When specifying `--expire`, the notification about when the link expires is now * an explicit timestamp instead of repeated user input. * printed to stderr instead of stdout. * only printed if `asfa` is used in a terminal. This makes it easier to capture the URL in scripts like `tmp_link=$(asfa push my-file)`. ## v0.7.0 (2021-01-25) * `push`: Add `--prefix`/`--suffix`. * Add a prefix (and/or suffix) to the filename stem (i.e. the part without extension). * Useful to distinguish several autogenerated files with generic names (e.g., plots). * Please note that dual extensions like `.tar.gz` specifying a suffix will cause it to be inserted after `.tar` (i.e. the extension of a `foobar.tar.gz` file is `.gz`). ## v0.6.1 (2021-01-08) * Changed `from_openssh` (introduced in v0.5.4) to default to `true` (was originally planned for v0.6.0, but forgotten :( ). * Fix bug that no files are listed if some folder names begin with a dash. ## v0.6.0 (2020-12-18) * `clean`/`list`/`verify`-commands: Add `--newer`/`--older`-flags * They take a duration (seconds, minutes, hours, weeks, months, years) and filter the otherwise selected files * [Supported formats](https://docs.rs/humantime/2.0.1/humantime/fn.parse_duration.html): -> tl;dr: Quantity and unit are NOT seperated by spaces * Examples: * List all files uploaded in the last three days: `asfa list --newer 3weeks` * Clean all files older than a month: `asfa clean --older 1month` * `clean`-command: * Make output in confirmation dialog similar to `list`-command. * Add `-d`/`--details` to force displaying of file details in confirmation like `list` command. * `push`-command: * Add `--limit-{mbits,kbytes}` to allow specifying a speed limit when uploading. * Add `-e`/`--expire` argument * automatically deletes uploaded files after set delay * delay syntax specified in the same manner as `--newer`/`--older` argument * uses `at` at remote site to schedule deletion ## v0.5.4 (2020-11-15) * Fix host-specific auth settings falling back on the default Auth-settings instead of the global Auth-settings defined in `config.yaml`. * Add support to obtain settings from openSSH. * If user-supplied settings fail to authenticate against the remote server, try using private keys listed in openSSH. * This can be toggled via a new `from_openssh`-boolean flag in `auth`-section. * For now, this defaults to false - will be changed to true in next non-bugfix release. * Ensure bulk-requested file stats are in correct order. ## v0.5.3 (2020-11-01) * Rework authentication procedure to only try authentication methods that the server advertises. * Add support for keyboard-interactive authentication if the user enables interactive input. -> Allows for two factor authentication (e.g., with pam-based google-authenticator) * Fix host settings defined in separate file not falling back to defaults set in `config.yaml` ## v0.5.2 (2020-10-29) * Improve stat retrieval speed from < 50 entries/s to near instant. * Needs `find`, `xargs` and `stat` on the remote site. * Falls back to retrieving stats via sftp-interface if needed tools not available. ## v0.5.1 (2020-10-23) * Fix: Remove unused `--no-confirm`-switch from verify command. * Fix: Colorful output for clean-confirmation. ## v0.5.0 (2020-10-22) * Allow host selection via `$ASFA_HOST` environment variable. Priority for host selection is: 1. `-H`/`--host` supplied via command line. 2. `ASFA_HOST` environment variable. 3. `default_host` from config file. 4. Single host if there is only one defined. * `clean`-command: * Add `-F`/`--filter`-option to clean files matching a given regex. * Add `-n`/`--last`-switch from `list` command to clean the last `n` files * Add `-r`/`--reverse`-switch to reverse listing (useful for `-n`). * Add `-S`/`--sort-size`-switch to sort files by remote size (useful for `-n`). * Add `-T`/`--sort-time`-switch to sort selected files by modification time. * `list`-command: * Add `-T`/`--sort-time`-switch to sort selected files by modification time. * Add `verify`-command with same file selection arguments as `clean`/`list`. ## v0.4.1 (2020-10-14) * Fix name of `prefix_length` in example config. * `list`: Add `-d`/`--details` switch that simply enables printing of all details. * Fix formatting error when displaying file sizes that are 1000 {K,M,G,T,…} exactly. ## v0.4.0 (2020-10-14) * Add `private_key_file` to auth-option in order to specfiy private key file directly * Add `--verbose` argument that increases loglevel * Add `--quiet` argument that decreases loglevel * Encode hash in base64 in order to make needed URL prefix shorter at same "guessability". → This causes the maximum prefix length to go down from 128 to 64 (4 bit per char → 8 bit per char) * `list`: * Add `-s`/`--with-size`-switch to print file sizes. * Add `-f`/`--filenames`-switch to print filenames instead of full urls in listing. * Add `-S`/`--sort-size`-switch to sort selected files by remote size. * Add `-r`/`--reverse`-switch to reverse listing. * Add `-F`/`--filter`-option to only display filenames matching a given regex. * Add `-i`/`--indices`-switch to only print indices of files. * This is useful to supply as input to the clean command for instance: * Example: `asfa clean $(asfa list -iF "\.png$")` deletes all png. * Add `-t`/`--with-time` to print modification times. ## v0.3.1 (2020-10-03) * Fix prefix length limited to 64 -> now 128 * Fix error when deleting file by hash (via `--file`). ## v0.3.0 (2020-09-27) * Fix unencoded-URL printed after push (only `list` reported correctly encoded URL) * Add notifications for upload progress and remote verification * Add confirmation prior to cleaning (can be avoided by issuing `--no-confirm`) ## v0.2.0 (2020-09-24) * Add option to specify prefix length ## v0.1.1 (2020-09-22) * Fix build issue with clap-3.0.0-beta.2 ## v0.1.0 (2020-09-14) * Initial release