#cargo #subcommand #dependencies #sort #check

app cargo-sort-ck

Check if tables and items in a .toml file are lexically sorted

12 releases (1 stable)

✓ Uses Rust 2018 edition

new 1.0.0 Jul 14, 2019
0.3.5 Jul 10, 2019
0.2.7 Jul 6, 2019
0.1.2 Jun 24, 2019

#31 in Cargo plugins

Download history 68/week @ 2019-06-22 26/week @ 2019-06-29 192/week @ 2019-07-06

96 downloads per month

MIT/Apache

40KB
1K SLoC

Cargo Sort Check

Build Status Latest Version

A tool to check that your Cargo.toml dependencies are sorted alphabetically. Project inspired by jpoles1 as a solution to @dtolnay's request for implementation #29. Cross platform implementation, windows compatible. Terminal coloring works on both cmd.exe and powershell. Checks/sorts by key in tables and also nested table headers (does not sort the items in a nested header, sorts the table itself).

Use

There are three modes cargo-sort-ck can be used in:

  • default - no flags set cargo-sort-ck will pass (exit 0) if .toml is sorted or fail if not (exit 1).
  • -p or --print - will print the sorted toml file to stdout.
  • -w or --write - will rewrite the toml file, I would like to eventually add some kind of check like cargo fix to warn if file is uncommitted/unsaved?.

included in sort check is:

["dependencies"]
["dev-dependencies"]
["build-dependencies"]
["workspace.members"]
["workspace.exclude"]

if you have a header to add open a PR's, they are welcomed.

Install

cargo install cargo-sort-ck

Run

Defaults to current dir but any path can be passed in.

Cargo Sort Check 
Devin R <devin.ragotzy@gmail.com>
Ensure Cargo.toml dependency tables are sorted.

USAGE:
    cargo-sort-ck [FLAGS] [CWD]

FLAGS:
        --crlf       output uses windows style line endings (\\r\\n)
    -h, --help       Prints help information
    -p, --print      prints Cargo.toml, lexically sorted, to the screen
    -V, --version    Prints version information
    -w, --write      rewrites Cargo.toml file so it is lexically sorted

ARGS:
    <CWD>...    Sets cwd, must contain Cargo.toml

Wildcard expansion is supported so you can do this

cargo-sort-ck [FLAGS] [path/to/*/Cargo.toml | path/to/*]

or any other pattern that is supported by your terminal. This also means multiple paths work.

cargo-sort-ck [FLAGS] path/to/a path/to/b path/to/c/Cargo.toml

These are all valid, file name and extension can be used on some of the paths, if left off the default is still Cargo.toml.

Examples

[dependencies]
a="0.1.1"
# comments will stay with the item
c="0.1.1"

# ILLEGAL no newline in table items
b="0.1.1"

[dependencies.alpha]
version="0"

[build-dependencies]
foo="0"
bar="0"

# comments will also stay with header
[dependencies.zed]
version="0"

[dependencies.beta]
version="0"

[dev-dependencies]
bar="0"
foo="0"

Will sort to, or fail until organized like so

[dependencies]
a="0.1.1"
b="0.1.1"
# comments will stay with the item
c="0.1.1"

[dependencies.alpha]
version="0"

[dependencies.beta]
version="0"

# comments will also stay with header
[dependencies.zed]
version="0"

[build-dependencies]
bar="0"
foo="0"

[dev-dependencies]
bar="0"
foo="0"

Dependencies

~1.5MB
~15K SLoC