2 A CLI tool for easily verifying a downloaded file's checksum.
4 Wouldn't it be nice if your computer compared the hash for you?
9 Read the MD5, SHA1 or SHA256 hash from:
11 * Command line argument
12 * SHASUMS-style check files (
`-c`)
13 * Raw hash in a file/STDIN (
`-c`)
14 * The clipboard (
`-p`)
16 ...or just run
`hashgood` against the input and receive all three at once.
18 This program arose from dissatisfaction with the
[workarounds required for traditional tools](https://thomask.sdf.org/blog/2019/05/05/techniques-for-verifying-shasums-conveniently.html).
22 If you have a working Rust toolchain you can install
`hashgood` from crates.io:
25 cargo install hashgood
28 Pre-compiled binaries for common platforms can be downloaded
[from the releases page](https://github.com/thombles/hashgood/releases). Otherwise you can build it yourself; see the next section.
32 `hashgood` targets stable Rust. With a Rust toolchain installed, clone the repository and run:
38 Take the compiled executable from
`target/release/hashgood`.
40 To include support for pasting from the clipboard with
`-p`, specify the extra feature. Note that on Linux this requires several extra libraries:
`libxcb1-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render0-dev`
43 cargo build --release --features paste
48 * Be forgiving and deliver what the user wants with a minimum of fuss. They just want to check this hash, damnit.
49 * Don't let users be tricked - be explicit about checksum types and the sources of those checksums that are being compared.
50 * As much cross-platform support as is practical.
54 * Scriptability. This is an interactive tool.
55 * Support for any unusual scenarios that could compromise smooth operation. (e.g., text mode, uncommon hash types)
59 * Nominate a default (downloads) directory and auto-select the most recently created file in that directory as input.