diff options
author | Thomas Gerbet <thomas@gerbet.me> | 2023-02-01 19:44:08 +0100 |
---|---|---|
committer | Thomas Gerbet <thomas@gerbet.me> | 2024-01-02 23:19:49 +0100 |
commit | 935d25c7e6ad39ef1018accf256710f2e3155a34 (patch) | |
tree | eccb0ef9d6ed289b9a7ca29bcbab55f59a6751aa /pkgs/by-name/ri | |
parent | ee291783e509f809c0c5e2c4050ea9edcfd6c4f6 (diff) |
ripunzip: init at 1.1.0
A setup hook script is provided to make possible to use `ripunzip` as a replacement of `unzip` in `fetchzip`.
Diffstat (limited to 'pkgs/by-name/ri')
-rw-r--r-- | pkgs/by-name/ri/ripunzip/package.nix | 48 | ||||
-rw-r--r-- | pkgs/by-name/ri/ripunzip/setup-hook.sh | 6 |
2 files changed, 54 insertions, 0 deletions
diff --git a/pkgs/by-name/ri/ripunzip/package.nix b/pkgs/by-name/ri/ripunzip/package.nix new file mode 100644 index 0000000000000..3dcdf976fcaae --- /dev/null +++ b/pkgs/by-name/ri/ripunzip/package.nix @@ -0,0 +1,48 @@ +{ lib +, stdenv +, fetchFromGitHub +, rustPlatform +, openssl +, darwin +, pkg-config +, testers +, fetchzip +, ripunzip +}: + +rustPlatform.buildRustPackage rec { + pname = "ripunzip"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "google"; + repo = "ripunzip"; + rev = "v${version}"; + hash = "sha256-GyP4OPnPKhu9nXYXIfWCVLF/thwWiP0OqAQY/1D05LE="; + }; + + cargoHash = "sha256-Jv9bCHT5xl/2CPnSuWd9HZuaGOttBC5iAbbpr3jaIhM="; + + buildInputs = [ openssl ] + ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Security SystemConfiguration ]); + nativeBuildInputs = [ pkg-config ]; + + setupHook = ./setup-hook.sh; + + passthru.tests = { + fetchzipWithRipunzip = testers.invalidateFetcherByDrvHash (fetchzip.override { unzip = ripunzip; }) { + url = "https://github.com/google/ripunzip/archive/cb9caa3ba4b0e27a85e165be64c40f1f6dfcc085.zip"; + hash = "sha256-BoErC5VL3Vpvkx6xJq6J+eUJrBnjVEdTuSo7zh98Jy4="; + }; + version = testers.testVersion { + package = ripunzip; + }; + }; + + meta = with lib; { + description = "A tool to unzip files in parallel"; + homepage = "https://github.com/google/ripunzip"; + license = with lib.licenses; [ mit asl20 ]; + maintainers = [ maintainers.lesuisse ]; + }; +} diff --git a/pkgs/by-name/ri/ripunzip/setup-hook.sh b/pkgs/by-name/ri/ripunzip/setup-hook.sh new file mode 100644 index 0000000000000..fc009db4cd3ff --- /dev/null +++ b/pkgs/by-name/ri/ripunzip/setup-hook.sh @@ -0,0 +1,6 @@ +unpackCmdHooks+=(_tryRipunzip) +_tryRipunzip() { + if ! [[ "$curSrc" =~ \.zip$ ]]; then return 1; fi + + ripunzip unzip-file "$curSrc" 2> /dev/null +} |