nixpkgs/pkgs/development/tools/async/default.nix
aleksana 1862813d11 treewide: convert cargoSha256 to cargoHash
This is done with the following bash script:

```
#!/usr/bin/env bash
process_line() {
    local filename=${1%:}
    if [[ $4 =~ \"(.*)\"\; ]]; then
      local sha256="${BASH_REMATCH[1]}"
    fi
    [[ -z $sha256 ]] && return 0
    local hash=$(nix hash to-sri --type sha256 $sha256)
    echo "Processing: $filename"
    echo "  $sha256 => $hash"
    sed -i "s|cargoSha256 = \"$sha256\"|cargoHash = \"$hash\"|"
$filename
}

# split output by line
grep -r 'cargoSha256 = ' . | while IFS= read -r line; do
    # split them further by space
    read -r -a parts <<< "$line"
    process_line "${parts[@]}"
done

```
2024-07-03 21:54:10 +08:00

30 lines
941 B
Nix

{ lib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "async";
version = "0.1.1";
src = fetchFromGitHub {
owner = "ctbur";
repo = pname;
rev = "v${version}";
sha256 = "19ypflbayi5l0mb8yw7w0a4bq9a3w8nl9jsxapp9m3xggzmsvrxx";
};
cargoHash = "sha256-jIL7ZFzRMQuGLmMatGegkYRYctlsl3RRUfChgaIhWHg=";
meta = with lib; {
description = "Tool to parallelize shell commands";
mainProgram = "async";
longDescription = ''
`async` is a tool to run shell commands in parallel and is designed to be
able to quickly parallelize shell scripts with minimal changes. It was
inspired by GNU Parallel, with the main difference being that async
retains state between commands by running a server in the background.
'';
homepage = "https://github.com/ctbur/async";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ minijackson ];
};
}