{ lib, buildGo123Module, fetchFromGitHub, installShellFiles, versionCheckHook, nix-update-script, }: buildGo123Module rec { pname = "sops"; version = "3.9.4-unstable"; src = fetchFromGitHub { owner = "getsops"; repo = "sops"; rev = "024b94f67afa967ed758ae17433d7da600e87599"; hash = "sha256-rNO9+gIxxH4sYoemFbOD8HaKWL48VnbdCOKvQ0FoTgI="; }; vendorHash = "sha256-wdsPuUpYHEBkZ80d7L3iXIbBsnK4to0zDUOOlvOtde4="; postPatch = '' substituteInPlace go.mod \ --replace-fail "go 1.22" "go 1.23.0" ''; subPackages = [ "cmd/sops" ]; ldflags = [ "-s" "-w" "-X github.com/getsops/sops/v3/version.Version=${version}" ]; nativeBuildInputs = [ installShellFiles ]; postInstall = '' installShellCompletion --cmd sops --bash ${./bash_autocomplete} installShellCompletion --cmd sops --zsh ${./zsh_autocomplete} ''; nativeInstallCheckInputs = [ versionCheckHook ]; versionCheckProgramArg = "--version"; doInstallCheck = true; passthru.updateScript = nix-update-script { }; meta = { homepage = "https://getsops.io/"; description = "Simple and flexible tool for managing secrets"; changelog = "https://github.com/getsops/sops/blob/v${version}/CHANGELOG.rst"; mainProgram = "sops"; maintainers = with lib.maintainers; [ Scrumplex mic92 ]; license = lib.licenses.mpl20; }; }