hashgood

Crates.iohashgood
lib.rshashgood
version0.4.0
sourcesrc
created_at2024-03-12 19:24:11.335437
updated_at2024-03-12 19:24:11.335437
descriptionInteractive CLI utility for verifying file checksums
homepagehttps://github.com/thombles/hashgood
repositoryhttps://github.com/thombles/hashgood
max_upload_size
id1170905
size194,275
Dev (github:0xmozak:dev)

documentation

README

hashgood

A CLI tool for easily verifying a downloaded file's checksum.

Wouldn't it be nice if your computer compared the hash for you?

Read the MD5, SHA1 or SHA256 hash from:

  • Command line argument
  • SHASUMS-style check files (-c)
  • Raw hash in a file/STDIN (-c)
  • The clipboard (-p)

...or just run hashgood against the input and receive all three at once.

This program arose from dissatisfaction with the workarounds required for traditional tools.

Installing

If you have a working Rust toolchain you can install hashgood from crates.io:

cargo install hashgood

Pre-compiled binaries for common platforms can be downloaded from the releases page. Otherwise you can build it yourself; see the next section.

Compiling

hashgood targets stable Rust. With a Rust toolchain installed, clone the repository and run:

cargo build --release

Take the compiled executable from target/release/hashgood.

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

cargo build --release --features paste

Goals

  • Be forgiving and deliver what the user wants with a minimum of fuss. They just want to check this hash, damnit.
  • Don't let users be tricked - be explicit about checksum types and the sources of those checksums that are being compared.
  • As much cross-platform support as is practical.

Non-goals

  • Scriptability. This is an interactive tool.
  • Support for any unusual scenarios that could compromise smooth operation. (e.g., text mode, uncommon hash types)

Future ideas

  • Nominate a default (downloads) directory and auto-select the most recently created file in that directory as input.
Commit count: 0

cargo fmt