nixpkgs/pkgs/applications/version-management/git-credential-manager/default.nix
2023-06-21 17:30:27 +02:00

50 lines
1.5 KiB
Nix

{ lib
, fetchFromGitHub
, buildDotnetModule
, dotnetCorePackages
, libX11
, libICE
, libSM
, fontconfig
, libsecret
, gnupg
, pass
, withGuiSupport ? true
, withLibsecretSupport ? true
, withGpgSupport ? true
}:
assert withLibsecretSupport -> withGuiSupport;
buildDotnetModule rec {
pname = "git-credential-manager";
version = "2.1.2";
src = fetchFromGitHub {
owner = "git-ecosystem";
repo = "git-credential-manager";
rev = "v${version}";
hash = "sha256-PeQ9atSCgSvduAcqY2CnNJH3ucvoInduA5i8dPUJiHo=";
};
projectFile = "src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj";
nugetDeps = ./deps.nix;
dotnet-sdk = dotnetCorePackages.sdk_6_0;
dotnet-runtime = dotnetCorePackages.runtime_6_0;
dotnetInstallFlags = [ "--framework" "net6.0" ];
executables = [ "git-credential-manager" ];
runtimeDeps = [ fontconfig ]
++ lib.optionals withGuiSupport [ libX11 libICE libSM ]
++ lib.optional withLibsecretSupport libsecret;
makeWrapperArgs = lib.optionals withGpgSupport [ "--prefix" "PATH" ":" (lib.makeBinPath [ gnupg pass ]) ];
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Secure, cross-platform Git credential storage with authentication to GitHub, Azure Repos, and other popular Git hosting services.";
homepage = "https://github.com/git-ecosystem/git-credential-manager";
license = with licenses; [ mit ];
platforms = platforms.unix;
maintainers = with maintainers; [ _999eagle ];
};
}