Walk an Amazon s3 path hierarchy

Overview

s3find

build status freebsd build status codecov crates.io docker image

A command line utility to walk an Amazon S3 hierarchy. An analog of find for Amazon S3.

Distribution

Release page distributions

Github Release page provides binaries for:

  • Windows
  • Linux
  • macOS

Docker

Docker image on docker hub:

  • develop: anderender/s3find:latest
  • release: anderender/s3find:<version>

Usage

USAGE:
    s3find [FLAGS] [OPTIONS] <path> [SUBCOMMAND]

FLAGS:
    -h, --help
            Prints help information

        --summarize
            Print summary statistic

    -V, --version
            Prints version information


OPTIONS:
        --aws-access-key <aws-access-key>
            AWS access key. Unrequired.

        --aws-region <aws-region>
            The region to use. Default value is us-east-1 [default: us-east-1]

        --aws-secret-key <aws-secret-key>
            AWS secret key. Unrequired

        --size <bytes-size>...
            File size for match:
                5k - exact match 5k,
                +5k - bigger than 5k,
                -5k - smaller than 5k,

            Possible file size units are as follows:
                k - kilobytes (1024 bytes)
                M - megabytes (1024 kilobytes)
                G - gigabytes (1024 megabytes)
                T - terabytes (1024 gigabytes)
                P - petabytes (1024 terabytes)
        --iname <ipatern>...
            Case-insensitive glob pattern for match, can be multiple

        --limit <limit>
            Limit result

        --name <npatern>...
            Glob pattern for match, can be multiple

        --page-size <number>
            The number of results to return in each response to a
            list operation. The default value is 1000 (the maximum
            allowed). Using a lower value may help if an operation
            times out. [default: 1000]
        --regex <rpatern>...
            Regex pattern for match, can be multiple

        --mtime <time>...
            Modification time for match, a time period:
                -5d - for period from now-5d to now
                +5d - for period before now-5d

            Possible time units are as follows:
                s - seconds
                m - minutes
                h - hours
                d - days
                w - weeks

            Can be multiple, but should be overlaping

ARGS:
    <path>
            S3 path to walk through. It should be s3://bucket/path


SUBCOMMANDS:
    copy        Copy matched keys to a s3 destination
    delete      Delete matched keys
    download    Download matched keys
    exec        Exec any shell program with every key
    help        Prints this message or the help of the given subcommand(s)
    ls          Print the list of matched keys
    lstags      Print the list of matched keys with tags
    move        Move matched keys to a s3 destination
    nothing     Do not do anything with keys, do not print them as well
    print       Extended print with detail information
    public      Make the matched keys public available (readonly)
    tags        Set the tags(overwrite) for the matched keys


The authorization flow is the following chain:
  * use credentials from arguments provided by users
  * use environment variable credentials: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  * use credentials via aws file profile.
    Profile can be set via environment variable AWS_PROFILE
    Profile file can be set via environment variable AWS_SHARED_CREDENTIALS_FILE
  * use AWS instance IAM profile
  * use AWS container IAM profile

Examples

Find path by glob pattern

Print

s3find 's3://example-bucket/example-path' --name '*' print

Delete

s3find 's3://example-bucket/example-path' --name '*' delete

List

s3find 's3://example-bucket/example-path' --name '*' ls

List keys with tags

s3find 's3://example-bucket/example-path' --name '*' lstags

Exec

s3find 's3://example-bucket/example-path' --name '*' exec 'echo {}'

Download

s3find 's3://example-bucket/example-path' --name '*' download

Copy files to another s3 location

s3find 's3://example-bucket/example-path' --name '*.dat' copy -f 's3://example-bucket/example-path2'

Move files to another s3 location

s3find 's3://example-bucket/example-path' --name '*.dat' move -f 's3://example-bucket/example-path2'

Set tags

s3find 's3://example-bucket/example-path' --name '*9*' tags 'key:value' 'env:staging'

Make public available

s3find 's3://example-bucket/example-path' --name '*9*' public

Find path by case insensitive glob pattern

s3find 's3://example-bucket/example-path' --iname '*s*' ls

Find path by regex pattern

s3find 's3://example-bucket/example-path' --regex '1$' print

Find path by size

Exact match

s3find 's3://example-bucket/example-path' --size 0 print

Larger

s3find 's3://example-bucket/example-path' --size +10M print

Smaller

s3find 's3://example-bucket/example-path' --size -10k print

Find path by time

Files modified for the period before last 10 seconds

s3find 's3://example-bucket/example-path' --mtime 10 print

Files modified for the period before last 10 minutes

s3find 's3://example-bucket/example-path' --mtime +10m print

Files modified since last 10 hours

s3find 's3://example-bucket/example-path' --mtime -10h print

Multiple filters

Same filters

Files with size between 10 and 20 bytes

s3find 's3://example-bucket/example-path' --size +10 --size -20 print

Different filters

s3find 's3://example-bucket/example-path' --size +10 --name '*file*' print

Additional control

Select limited number of keys

s3find 's3://example-bucket/example-path' --name '*' --limit 10

Limit page size of the request

s3find 's3://example-bucket/example-path' --name '*' --page-size 100

How to build and install

Requirements: rust and cargo

# Build
cargo build --release

# Install from local source
cargo install

# Install latest from git
cargo install --git https://github.com/AnderEnder/s3find-rs

# Install from crate package
cargo install s3find
Comments
  • Bump tokio from 1.1.0 to 1.9.0

    Bump tokio from 1.1.0 to 1.9.0

    Bumps tokio from 1.1.0 to 1.9.0.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.9.0

    1.9.0 (July 19, 2021)

    Added

    • net: allow customized I/O operations for TcpStream (#3888)
    • sync: add getter for the mutex from a guard (#3928)
    • task: expose nameable future for TaskLocal::scope (#3273)

    Fixed

    • Fix leak if output of future panics on drop (#3967)
    • Fix leak in LocalSet (#3978)

    Changes

    #3273: tokio-rs/tokio#3273 #3888: tokio-rs/tokio#3888 #3909: tokio-rs/tokio#3909 #3928: tokio-rs/tokio#3928 #3934: tokio-rs/tokio#3934 #3939: tokio-rs/tokio#3939 #3945: tokio-rs/tokio#3945 #3950: tokio-rs/tokio#3950 #3955: tokio-rs/tokio#3955 #3959: tokio-rs/tokio#3959 #3967: tokio-rs/tokio#3967 #3967: tokio-rs/tokio#3967 #3978: tokio-rs/tokio#3978 #3980: tokio-rs/tokio#3980

    Tokio 1.8.2

    Fixes a missed edge case from 1.8.1.

    Fixed

    • runtime: drop canceled future on next poll (#3965)

    Tokio 1.8.1

    Forward ports 1.5.1 fixes.

    Fixed

    • runtime: remotely abort tasks on JoinHandle::abort (#3934)

    #3934: tokio-rs/tokio#3934

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 4
  • Bump regex from 1.2.0 to 1.2.1

    Bump regex from 1.2.0 to 1.2.1

    Bumps regex from 1.2.0 to 1.2.1.

    Changelog

    Sourced from regex's changelog.

    1.2.1 (2019-08-03)

    This release does a bit of house cleaning. Namely:

    • This repository is now using rustfmt.
    • License headers have been removed from all files, in following suit with the Rust project.
    • Teddy has been removed from the regex crate, and is now part of the aho-corasick crate. See aho-corasick's new packed sub-module for details.
    • The utf8-ranges crate has been deprecated, with its functionality moving into the utf8 sub-module of regex-syntax.
    • The ucd-util dependency has been dropped, in favor of implementing what little we need inside of regex-syntax itself.

    In general, this is part of an ongoing (long term) effort to make optimizations in the regex engine easier to reason about. The current code is too convoluted and thus it is very easy to introduce new bugs. This simplification effort is the primary motivation behind re-working the aho-corasick crate to not only bundle algorithms like Teddy, but to also provide regex-like match semantics automatically.

    Moving forward, the plan is to join up with the bstr and regex-automata crates, with the former providing more sophisticated substring search algorithms (thereby deleting existing code in regex) and the latter providing ahead-of-time compiled DFAs for cases where they are inexpensive to compute.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it). To ignore the version in this PR you can just close it
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.

    dependencies 
    opened by dependabot-preview[bot] 4
  • Bump chrono from 0.4.7 to 0.4.8

    Bump chrono from 0.4.7 to 0.4.8

    Bumps chrono from 0.4.7 to 0.4.8.

    Changelog

    Sourced from chrono's changelog.

    0.4.8

    Fixes

    Features

    • Support wasm-unknown-unknown via wasm-bindgen (in addition to emscripten/wasm-unknown-emscripten). (finished by @​evq in #331, initial work by @​jjpe #287)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.

    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump failure from 0.1.3 to 0.1.4

    Bump failure from 0.1.3 to 0.1.4

    Bumps failure from 0.1.3 to 0.1.4.

    Changelog

    Sourced from failure's changelog.

    Version 0.1.4

    • Improved error reporting of the derive feature
    • Resolved a potential internal ambiguity when using the backtrace feature that prevented backtrace from improving an upstream API.
    • Changed the bounds on std error compat conversions through the From trait to take Sync and Send into account.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.

    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump clap from 2.33.3 to 4.0.25

    Bump clap from 2.33.3 to 4.0.25

    Bumps clap from 2.33.3 to 4.0.25.

    Release notes

    Sourced from clap's releases.

    v4.0.25

    [4.0.25] - 2022-11-15

    Features

    • (error) Report available subcommands when required subcommand is missing

    v4.0.24

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    v4.0.23

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    v4.0.22

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    v4.0.21

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    v4.0.20

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    v4.0.19

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.25] - 2022-11-15

    Features

    • (error) Report available subcommands when required subcommand is missing

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    [4.0.17] - 2022-10-18

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump clap from 2.33.3 to 4.0.24

    Bump clap from 2.33.3 to 4.0.24

    Bumps clap from 2.33.3 to 4.0.24.

    Release notes

    Sourced from clap's releases.

    v4.0.24

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    v4.0.23

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    v4.0.22

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    v4.0.21

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    v4.0.20

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    v4.0.19

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    v4.0.18

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    [4.0.16] - 2022-10-18

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump clap from 2.33.3 to 4.0.23

    Bump clap from 2.33.3 to 4.0.23

    Bumps clap from 2.33.3 to 4.0.23.

    Release notes

    Sourced from clap's releases.

    v4.0.23

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    v4.0.22

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    v4.0.21

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    v4.0.20

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    v4.0.19

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    v4.0.18

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    v4.0.17

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    [4.0.15] - 2022-10-13

    ... (truncated)

    Commits
    • 95144b7 chore: Release
    • 20ecae1 docs: Update changelog
    • e6a3529 Merge pull request #4474 from epage/utf8
    • e9cbed3 fix(parser): Don't panic on invalid UTF-8 values
    • 45d26e0 test(parser): Show UTF8 bug
    • 4d69e56 Merge pull request #4471 from epage/assert
    • ec03972 test(assert): Verify empty positional assert exists
    • 0d27188 Merge pull request #4465 from epage/help
    • 9376a57 fix(help): Clarify that 'help' command accepts multiple
    • 6cbe5c4 chore: Release
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump clap from 2.33.3 to 4.0.22

    Bump clap from 2.33.3 to 4.0.22

    Bumps clap from 2.33.3 to 4.0.22.

    Release notes

    Sourced from clap's releases.

    v4.0.22

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    v4.0.21

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    v4.0.20

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    v4.0.19

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    v4.0.18

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    v4.0.17

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    v4.0.16

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    v4.0.15

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    [4.0.14] - 2022-10-12

    ... (truncated)

    Commits
    • 6cbe5c4 chore: Release
    • d2739c9 docs: Update changelog
    • eaa6bfe Merge pull request #4463 from epage/help
    • dfe9e73 fix(help): Update auto-next-line to use new padding
    • 539577d refactor(help): Remove dead code
    • bc457b1 chore: Release
    • d5c3c13 docs: Update changelog
    • 87edc19 Merge pull request #4461 from epage/help
    • c37ab6c fix(derive): Allow 'long_help' to force populating from doc comment
    • 8751152 test(derive): Verify long_help behavior
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump clap from 2.33.3 to 4.0.18

    Bump clap from 2.33.3 to 4.0.18

    Bumps clap from 2.33.3 to 4.0.18.

    Release notes

    Sourced from clap's releases.

    v4.0.18

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    v4.0.17

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    v4.0.16

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    v4.0.15

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    v4.0.14

    [4.0.14] - 2022-10-12

    Fixes

    • Only put ArgGroup in ArgMatches when explicitly specified, fixing derives handling of option-flattened fields (#4375)

    v4.0.13

    [4.0.13] - 2022-10-11

    Features

    • (derive) Allow () for fields to mean "don't read" (#4371)

    v4.0.12

    [4.0.12] - 2022-10-10

    Features

    • Added TypedValueParser::try_map for when adapting an existing TypedValueParser can fail
    • (error) Create errors like clap with Error::new, Error::with_cmd, and Error::insert

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.18] - 2022-10-20

    Fixes

    • (derive) Allow #[command(skip)] to also work with enum variants with a value

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    [4.0.14] - 2022-10-12

    Fixes

    • Only put ArgGroup in ArgMatches when explicitly specified, fixing derives handling of option-flattened fields (#4375)

    [4.0.13] - 2022-10-11

    Features

    • (derive) Allow () for fields to mean "don't read" (#4371)

    [4.0.12] - 2022-10-10

    Features

    • Added TypedValueParser::try_map for when adapting an existing TypedValueParser can fail
    • (error) Create errors like clap with Error::new, Error::with_cmd, and Error::insert

    [4.0.11] - 2022-10-09

    Fixes

    • (help) Fix wrapping calculations with ANSI escape codes

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump clap from 2.33.3 to 4.0.17

    Bump clap from 2.33.3 to 4.0.17

    Bumps clap from 2.33.3 to 4.0.17.

    Release notes

    Sourced from clap's releases.

    v4.0.17

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    v4.0.16

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    v4.0.15

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    v4.0.14

    [4.0.14] - 2022-10-12

    Fixes

    • Only put ArgGroup in ArgMatches when explicitly specified, fixing derives handling of option-flattened fields (#4375)

    v4.0.13

    [4.0.13] - 2022-10-11

    Features

    • (derive) Allow () for fields to mean "don't read" (#4371)

    v4.0.12

    [4.0.12] - 2022-10-10

    Features

    • Added TypedValueParser::try_map for when adapting an existing TypedValueParser can fail
    • (error) Create errors like clap with Error::new, Error::with_cmd, and Error::insert

    v4.0.11

    [4.0.11] - 2022-10-09

    Fixes

    • (help) Fix wrapping calculations with ANSI escape codes

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.17] - 2022-10-18

    Fixes

    • Allow using Arg::last(true) with Arg::value_hint(ValueHint::CommandWithArguments)

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    [4.0.14] - 2022-10-12

    Fixes

    • Only put ArgGroup in ArgMatches when explicitly specified, fixing derives handling of option-flattened fields (#4375)

    [4.0.13] - 2022-10-11

    Features

    • (derive) Allow () for fields to mean "don't read" (#4371)

    [4.0.12] - 2022-10-10

    Features

    • Added TypedValueParser::try_map for when adapting an existing TypedValueParser can fail
    • (error) Create errors like clap with Error::new, Error::with_cmd, and Error::insert

    [4.0.11] - 2022-10-09

    Fixes

    • (help) Fix wrapping calculations with ANSI escape codes

    [4.0.10] - 2022-10-05

    Features

    • (derive) Support #[arg(flatten)] on Option types (#4211, #4350)

    ... (truncated)

    Commits
    • b9dfbbf chore: Release
    • a6c8f6a docs: Update changelog
    • e11afa2 Merge pull request #4401 from epage/last
    • 1ead5ef fix(complete): Support last(true) with CommandWithArguments
    • e50a11a Merge pull request #4399 from j-browne/link-fix
    • a1d4476 Fix a broken link in ValueEnum docs
    • cbb05d5 chore: Release
    • b77bd0c docs: Update changelog
    • 466b6f8 Merge pull request #4397 from epage/exclusive
    • 45dcf0e fix(parser): Don't make Args exclusive with their ArgGroup
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump clap from 2.33.3 to 4.0.16

    Bump clap from 2.33.3 to 4.0.16

    Bumps clap from 2.33.3 to 4.0.16.

    Release notes

    Sourced from clap's releases.

    v4.0.16

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    v4.0.15

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    v4.0.14

    [4.0.14] - 2022-10-12

    Fixes

    • Only put ArgGroup in ArgMatches when explicitly specified, fixing derives handling of option-flattened fields (#4375)

    v4.0.13

    [4.0.13] - 2022-10-11

    Features

    • (derive) Allow () for fields to mean "don't read" (#4371)

    v4.0.12

    [4.0.12] - 2022-10-10

    Features

    • Added TypedValueParser::try_map for when adapting an existing TypedValueParser can fail
    • (error) Create errors like clap with Error::new, Error::with_cmd, and Error::insert

    v4.0.11

    [4.0.11] - 2022-10-09

    Fixes

    • (help) Fix wrapping calculations with ANSI escape codes

    v4.0.10

    [4.0.10] - 2022-10-05

    Features

    • (derive) Support #[arg(flatten)] on Option types (#4211, #4350)

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.16] - 2022-10-18

    Fixes

    • Arg::exclusive(true) should not be exclusive with the argument's own ArgGroup

    [4.0.15] - 2022-10-13

    Fixes

    • (error) Don't suggest -- when it doesn't help
    • (error) Be more consistent in quoting, punctuation, and indentation in errors

    [4.0.14] - 2022-10-12

    Fixes

    • Only put ArgGroup in ArgMatches when explicitly specified, fixing derives handling of option-flattened fields (#4375)

    [4.0.13] - 2022-10-11

    Features

    • (derive) Allow () for fields to mean "don't read" (#4371)

    [4.0.12] - 2022-10-10

    Features

    • Added TypedValueParser::try_map for when adapting an existing TypedValueParser can fail
    • (error) Create errors like clap with Error::new, Error::with_cmd, and Error::insert

    [4.0.11] - 2022-10-09

    Fixes

    • (help) Fix wrapping calculations with ANSI escape codes

    [4.0.10] - 2022-10-05

    Features

    • (derive) Support #[arg(flatten)] on Option types (#4211, #4350)

    [4.0.9] - 2022-10-03

    Fixes

    • (derive) Process doc comments for #[command(subcommand)] like in clap v3

    ... (truncated)

    Commits
    • cbb05d5 chore: Release
    • b77bd0c docs: Update changelog
    • 466b6f8 Merge pull request #4397 from epage/exclusive
    • 45dcf0e fix(parser): Don't make Args exclusive with their ArgGroup
    • a40c7b4 Merge pull request #4390 from sergejp/master
    • 3250bce docs: Provide a better example for positional arg append under derive
    • e6436a0 docs: Provide a better example for positional arg append
    • bd5a6ea chore: Release
    • 7eaeed3 docs: Update changelog
    • 0f6ef30 Merge pull request #4384 from epage/consistent
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump clap from 2.33.3 to 4.0.26

    Bump clap from 2.33.3 to 4.0.26

    Bumps clap from 2.33.3 to 4.0.26.

    Release notes

    Sourced from clap's releases.

    v4.0.26

    [4.0.26] - 2022-11-16

    Fixes

    • (error) Fix typos in ContextKind::as_str

    v4.0.25

    [4.0.25] - 2022-11-15

    Features

    • (error) Report available subcommands when required subcommand is missing

    v4.0.24

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    v4.0.23

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    v4.0.22

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    v4.0.21

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    v4.0.20

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.26] - 2022-11-16

    Fixes

    • (error) Fix typos in ContextKind::as_str

    [4.0.25] - 2022-11-15

    Features

    • (error) Report available subcommands when required subcommand is missing

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    [4.0.18] - 2022-10-20

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump indicatif from 0.16.2 to 0.17.2

    Bump indicatif from 0.16.2 to 0.17.2

    Bumps indicatif from 0.16.2 to 0.17.2.

    Release notes

    Sourced from indicatif's releases.

    0.17.2

    A small maintenance release which makes indicatif more portable and fixes some minor regressions.

    • Use portable-atomic to fix build on some 32-bit platforms (#484, thanks to @​messense)
    • Implement multi-line progress message support (#443, thanks to @​happenslol)
    • Reset estimator of progress rate on backwards movement (#483, thanks to @​rlee287)
    • Fix percent initial value when there is no length (#491, thanks to @​devmatteini)
    • Bumped the MSRV to 1.56 (#482)

    On behalf of @​djc and @​chris-laplante, thanks to all contributors!

    0.17.1

    2.5 months after the large 0.17 release, we (finally) have a release that addresses most of the regressions found in 0.17. There is ongoing work on changes in the estimation algorithm, tracked in #394, which has regressed for some users.

    Note that we made some technically semver-breaking change of adding a missing Sync bound to the ProgressTracker bounds (#471). We're assuming that most users don't (yet) have custom ProgressTracker impls, and that users who do have probably built one that is Sync anyway.

    Fixed regressions

    • Fixed unicode-width feature spelling (#456)
    • Only tick if the ticker is disabled (#458)
    • Rework MultiProgress zombie line handling (#460)
    • Fix incorrect link in documentation (#469, thanks to @​Jedsek)
    • Take a reference for ProgressBar::style() (#476, thanks to @​andrewchambers)

    Other changes

    Thanks from @​djc and @​chris-laplante to all contributors!

    0.17.0

    indicatif is one of the most popular terminal progress bar libraries in the Rust ecosystem. More than a year after the 0.16.0 release, we're happy to finally release 0.17. In the past year, the indicatif team has grown to two maintainers, since @​chris-laplante joined @​djc as a maintainer. We also now have a Discord channel.

    Apart from many small API additions and fixes, particular effort has gone into reducing the overhead for reporting progress. To this end, we've removed some of the explicit rate limiting APIs in favor of a single refresh rate in the ProgressDrawTarget. We now set a rate limit by default (50ms) that should drastically reduce overhead for most applications while being more than enough for most terminal applications. Additionally, position updates are now synchronized by using atomic integer APIs instead of a mutex. In a basic test the simplest possible progress bar is about 95x faster on 0.17.0 compared to 0.16.2.

    We've made many changes to the way MultiProgress collections work. You no longer need to explicitly join() the MultiProgress, there are more ways to insert new progress bars into the collection, and many correctness improvements have been made, in part to more effort having gone into testing the crate.

    Additionally, we've reduced our dependency footprint, removing lazy_static and regex from our required dependencies.

    Additions

    ... (truncated)

    Commits
    • 25afbed Bump version number to 0.17.2
    • 8e220fd Fix clippy lints
    • 5b8b905 Fix percent initial value when there is no length
    • 2c85ff8 Add an armv5te test job to CI
    • 44ec391 Use portable-atomic to fix build on some 32-bit platforms
    • 14b5ef2 Update test to ensure reset occurs after rewind
    • 997567d Reset estimator of progress rate on backwards movement
    • 517398b Bump MSRV to 1.56
    • 222df5b Add additional tests for multi-progress multiline rendering
    • be579da Improve multiline support in format_style
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump itertools from 0.10.1 to 0.10.5

    Bump itertools from 0.10.1 to 0.10.5

    Bumps itertools from 0.10.1 to 0.10.5.

    Changelog

    Sourced from itertools's changelog.

    Changelog

    0.10.4

    0.10.2

    • Add Itertools::multiunzip (#362, #565)
    • Add intersperse and intersperse_with free functions (#555)
    • Add Itertools::sorted_by_cached_key (#424, #575)
    • Specialize ProcessResults::fold (#563)
    • Fix subtraction overflow in DuplicatesBy::size_hint (#552)
    • Fix specialization tests (#574)
    • More Debug impls (#573)
    • Deprecate fold1 (use reduce instead) (#580)
    • Documentation fixes (HomogenousTuple, into_group_map, into_group_map_by, MultiPeek::peek) (#543 et al.)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump rusoto_s3 from 0.47.0 to 0.48.0

    Bump rusoto_s3 from 0.47.0 to 0.48.0

    Bumps rusoto_s3 from 0.47.0 to 0.48.0.

    Release notes

    Sourced from rusoto_s3's releases.

    Rusoto 0.48.0

    [0.48.0] - 2022-04-24

    Rusoto is in maintenance mode. This may be the last Rusoto release. Consider moving to the AWS SDK for Rust.

    • Remove macie, mobile, and worklink services, which have had their DNS records removed
    • Add support for ap-southeast-3, Asia Pacific (Jakarta)
    • Add Clone derived trait to TlsError
    • Allow the user to choose between rustls and rustls-webpki, and make only the former depend on native cert support
    • Update hyper-rustls to 0.23
    Changelog

    Sourced from rusoto_s3's changelog.

    [0.48.0] - 2022-04-24

    • Remove macie, mobile, and worklink services, which have had their DNS records removed
    • Add support for ap-southeast-3, Asia Pacific (Jakarta)
    • Add Clone derived trait to TlsError
    • Allow the user to choose between rustls and rustls-webpki, and make only the former depend on native cert support
    • Update hyper-rustls to 0.23
    Commits
    • 0df121f v0.48.0
    • bd9f3f1 fix misspelling of default-features
    • 529f6dd remove crates for dead(!) services
    • 19924ce Merge pull request #1977 from rusoto/hyper-rustls
    • f7c92c3 add the new hyper-rustls default features
    • 37bac10 Merge pull request #1976 from svc-93/patch-1
    • ae7f34e Include ap-southeast-3 in AWS Regions
    • df31792 Upgrade hyper-rustls
    • e9d9214 Add Clone derived trait to TlsError
    • 9081eaa Support building rustls without native certs, to eliminate openssl-probe
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump rusoto_core from 0.47.0 to 0.48.0

    Bump rusoto_core from 0.47.0 to 0.48.0

    Bumps rusoto_core from 0.47.0 to 0.48.0.

    Changelog

    Sourced from rusoto_core's changelog.

    [0.48.0] - 2022-04-24

    • Remove macie, mobile, and worklink services, which have had their DNS records removed
    • Add support for ap-southeast-3, Asia Pacific (Jakarta)
    • Add Clone derived trait to TlsError
    • Allow the user to choose between rustls and rustls-webpki, and make only the former depend on native cert support
    • Update hyper-rustls to 0.23
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump rusoto_credential from 0.47.0 to 0.48.0

    Bump rusoto_credential from 0.47.0 to 0.48.0

    Bumps rusoto_credential from 0.47.0 to 0.48.0.

    Changelog

    Sourced from rusoto_credential's changelog.

    [0.48.0] - 2022-04-24

    • Remove macie, mobile, and worklink services, which have had their DNS records removed
    • Add support for ap-southeast-3, Asia Pacific (Jakarta)
    • Add Clone derived trait to TlsError
    • Allow the user to choose between rustls and rustls-webpki, and make only the former depend on native cert support
    • Update hyper-rustls to 0.23
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(v0.7.2)
Owner
Andrii Radyk
Andrii Radyk
Embeddable tree-walk interpreter for a "mostly lazy" Lisp-like scripting language.

ceceio Embeddable tree-walk interpreter for a "mostly lazy" Lisp-like scripting language. Just a work-in-progress testbed for now. Sample usage us

Vinícius Miguel 7 Aug 18, 2022
Concatenate Amazon S3 files remotely using flexible patterns

S3 Concat This tool has been migrated into s3-utils, please use that crate for future updates. A small utility to concatenate files in AWS S3. Designe

Isaac Whitfield 33 Dec 15, 2022
Utilities and tools based around Amazon S3 to provide convenience APIs in a CLI

s3-utils Utilities and tools based around Amazon S3 to provide convenience APIs in a CLI. This tool contains a small set of command line utilities for

Isaac Whitfield 47 Dec 15, 2022
Edit a file directly on Amazon S3 in CLI.

s3-edit-rs The original idea for this project comes from s3-edit written in Go by tsub. I started this project for educational purposes, and it is my

Gor Hayrapetyan 6 Jul 12, 2020
Demo: Connect Phala's Fat Contract to external storage services, both centralized (Amazon s3) and decentralized .

This demo shows how to connect Phala's Fat Contract to external storage services, both centralized (Amazon s3) and decentralized (Arweave/Filecoin thr

Christopher Fok 2 Aug 30, 2022
gt your desired path with minimal keystrokes

goto (gt) gt is a simple and user-friendly way to jump to your indexed directories. gt is short for "goto", which is basically what you want to do wit

Sylvester Chin 25 Nov 7, 2022
Fuse filesystem that returns symlinks to executables based on the PATH of the requesting process.

Envfs Fuse filesystem that returns symlinks to executables based on the PATH of the requesting process. This is useful to execute shebangs on NixOS th

Jörg Thalheim 98 Jan 2, 2023
CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path

Move Links CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path (or name). Usage execu

Ben Mefteh 18 May 22, 2022
Fast shortest path calculations for Rust

Fast Paths The most famous algorithms used to calculate shortest paths are probably Dijkstra's algorithm and A*. However, shortest path calculation ca

Andi 226 Jan 2, 2023
Add path effects to open glyphs in a UFO file

ufostroker Add path effects to open contours in a UFO file Given a glyph with open contours: You can apply a noodle effect: ufostroker -i Open.ufo -o

Simon Cozens 5 Jun 28, 2021
A small tool to clone git repositories to a standard location, organised by domain name and path.

A small tool to clone git repositories to a standard location, organised by domain name and path. Runs on BSD, Linux, macOS, Windows, and more.

Wesley Moore 68 Dec 19, 2022
🧹 Quick & dirty fuzzy path comparison

?? fuzzypath Quick & dirty fuzzy path comparison Comparison rules ✅ Case insensitive ✅ Backslashes are normalized to forward slashes ✅ Trailing slashe

William 4 May 19, 2022
Explore the WWW and find the shortest path between two HTML documents

explore Find shortest path between two web resources. About I decided to create this project because some day I started to wonder: In how many clicks

Eryk Andrzejewski 1 Apr 10, 2022
Finding the shortest and fastest path in the graph to optimize traffic.

Finding the shortest and fastest path in the graph to optimize traffic. Because we don't want to spend unnecessary time searching for the optimal route back to home.

Tomáš Petržela 2 Oct 26, 2021
Checks if there are enough space in a specified path.

@planetarium/check-free-space This package uses native OS APIs to get free size available on specified path. It is powered by fs2 under the hood. APIs

Planetarium 8 Dec 5, 2022
A small unix and windows lib to search for executables in PATH folders.

A small unix and windows lib to search for executables in path folders.

Robiot 2 Dec 25, 2021
An implementation of request routing via a singular grouped regex (with support for path parameter extraction).

rs-regex-router An implementation of request routing via a singular grouped regex (with support for path parameter extraction). Features Design approa

Harry 1 Nov 25, 2021
Port path module (and tests) of nodejs to rust using the same algorithms.

rusty_nodejs_path Port path module (and tests) of nodejs to rust using the same algorithms. crates.io Documents Progress posix path.basename(path[, ex

Yunfei He 10 Sep 25, 2022
Bevy plugin for an AssetServer that can load embedded resources, or use other AssetServers based on the path.

Bevy-Embasset Embed your asset folder inside your binary. bevy-embasset adds support for loading assets embedded into the binary. Furthermore, it can

Johnny Tidemand Vestergaard 9 Aug 4, 2022
Prints the absolute path of all regular files in an unmounted btrfs filesystem image.

btrfs-walk-tut Prints the absolute path of all regular files in an unmounted btrfs filesystem image. Learning about btrfs: Btrfs Basics Series This re

Nishal Kulkarni 2 Feb 3, 2022