diff options
| author | Jan Tojnar <jtojnar@gmail.com> | 2023-02-20 13:04:40 +0100 |
|---|---|---|
| committer | Jan Tojnar <jtojnar@gmail.com> | 2023-02-20 13:34:48 +0100 |
| commit | 8a23727c3af8f5517a6be4d38265911aca0f8d16 (patch) | |
| tree | 04a4127832b815bf2164f8f8b64140c381ae04c7 | |
| parent | terraform-providers.vault: 3.12.0 → 3.13.0 (diff) | |
| download | nixpkgs-8a23727c3af8f5517a6be4d38265911aca0f8d16.tar.gz | |
gokrazy-rsync: init at unstable-2022-10-17origin/gokrazy-rsync
Script for updating vendorHash taken from grafana
| -rw-r--r-- | pkgs/applications/networking/sync/gokrazy-rsync/default.nix | 77 | ||||
| -rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
2 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/applications/networking/sync/gokrazy-rsync/default.nix b/pkgs/applications/networking/sync/gokrazy-rsync/default.nix new file mode 100644 index 000000000000..fe02fc4816b1 --- /dev/null +++ b/pkgs/applications/networking/sync/gokrazy-rsync/default.nix @@ -0,0 +1,77 @@ +{ stdenv +, lib +, buildGoModule +, fetchFromGitHub +, rsync +, openssh +, writeShellScript +, unstableGitUpdater +, _experimental-update-script-combinators +}: + +buildGoModule rec { + pname = "gokrazy-rsync"; + version = "unstable-2022-10-17"; + + src = fetchFromGitHub { + owner = "gokrazy"; + repo = "rsync"; + rev = "197246cdaa697ce55d511dd99491a2cc1465ef18"; + sha256 = "sha256-u7Z9eXpq1pvi46nkfbaZzXXkKvR8DCOeqdop0p3HYgw="; + }; + + vendorHash = "sha256-NIiTVJfAU8L9wZB7TeiVzDjkI6d7SGFiLr36kWdHtlw="; + + nativeCheckInputs = [ + rsync + openssh + ]; + + postPatch = lib.optionalString stdenv.hostPlatform.isMinGW '' + # Depends on Unix functions + rm -r internal/rsynctest + ''; + + passthru = { + updateScript = + let + updateSource = unstableGitUpdater { }; + updateVendor = writeShellScript "update-gokrazy-rsync-vendor-hash" '' + set -euo pipefail + FILE="$(nix-instantiate --eval -E 'with import ./. {}; (builtins.unsafeGetAttrPos "version" gokrazy-rsync).file' | tr -d '"')" + replaceHash() { + old="''${1?old hash missing}" + new="''${2?new hash missing}" + awk -v OLD="$old" -v NEW="$new" '{ + if (i=index($0, OLD)) { + $0 = substr($0, 1, i-1) NEW substr($0, i+length(OLD)); + } + print $0; + }' "$FILE" | sponge "$FILE" + } + extractVendorHash() { + original="''${1?original hash missing}" + result="$(nix-build -A gokrazy-rsync.go-modules 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true)" + [ -z "$result" ] && { echo "$original"; } || { echo "$result"; } + } + + goHash="$(nix-instantiate --eval -A gokrazy-rsync.vendorHash | tr -d '"')" + emptyHash="$(nix-instantiate --eval -A lib.fakeHash | tr -d '"')" + replaceHash "$goHash" "$emptyHash" + replaceHash "$emptyHash" "$(extractVendorHash "$goHash")" + ''; + in + _experimental-update-script-combinators.sequence [ + updateSource + updateVendor + ]; + }; + + meta = { + description = "Back-end for Vikunja to-do list app"; + homepage = "https://github.com/gokrazy/rsync"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ jtojnar ]; + platforms = lib.platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6cb79d651bde..49f86fee2cd6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7685,6 +7685,8 @@ with pkgs; gokart = callPackage ../development/tools/gokart { }; + gokrazy-rsync = callPackage ../applications/networking/sync/gokrazy-rsync { }; + gl2ps = callPackage ../development/libraries/gl2ps { }; glusterfs = callPackage ../tools/filesystems/glusterfs { }; |
