command-error 0.8.0

Detailed error messages and status checking for `std::process::Command`
Documentation
{
  writeShellApplication,
  cargo,
  jq,
}:
writeShellApplication {
  name = "get-crate-version";

  runtimeInputs = [
    cargo
    jq
  ];

  text = ''
    # Gets the version of `command-error` in `Cargo.toml` using
    # `cargo metadata` and `jq`.

    VERSION=$(cargo metadata --format-version 1 \
        | jq -r '.packages[] | select(.name == "command-error") | .version')

    echo "Version in \`Cargo.toml\` is $VERSION" 1>&2

    if [[ -z "$VERSION" ]]; then
        echo "I wasn't able to determine the version in \`Cargo.toml\` with \`cargo metadata\`"
        exit 1
    fi

    echo "$VERSION"
  '';
}