Compare commits

...

2 Commits

Author SHA1 Message Date
chn
2d3658130b nixos/git: add lsf.enablePureSSHTransfer 2024-11-03 12:39:02 +08:00
chn
539e4e2733 git-lfs-transfer: init at unstable-2024-10-07
Co-authored-by: Loïc Reynier <88983487+loicreynier@users.noreply.github.com>
Co-authored-by: Arne Keller <2012gdwu+github@posteo.de>
Co-authored-by: Aleksana <alexander.huang.y@gmail.com>
2024-11-03 12:38:53 +08:00
2 changed files with 32 additions and 1 deletions

View File

@@ -60,6 +60,8 @@ in
enable = lib.mkEnableOption "git-lfs (Large File Storage)";
package = lib.mkPackageOption pkgs "git-lfs" { };
enablePureSSHTransfer = lib.mkEnableOption "Enable pure SSH transfer in server side by adding git-lfs-transfer to environment.systemPackages";
};
};
};
@@ -72,7 +74,10 @@ in
};
})
(lib.mkIf (cfg.enable && cfg.lfs.enable) {
environment.systemPackages = [ cfg.lfs.package ];
environment.systemPackages = lib.mkMerge [
[ cfg.lfs.package ]
(lib.mkIf cfg.lfs.enablePureSSHTransfer [ pkgs.git-lfs-transfer ])
];
programs.git.config = {
filter.lfs = {
clean = "git-lfs clean -- %f";

View File

@@ -0,0 +1,26 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule {
pname = "git-lfs-transfer";
version = "0.1.0-unstable-2024-10-07";
src = fetchFromGitHub {
owner = "charmbracelet";
repo = "git-lfs-transfer";
rev = "422d24414fe4b803849b3f6fe7c4d8ab1b40803b";
hash = "sha256-YsplPW3i4W1RfkWQI1eGXFXb3JofQwKe+9LbjxeL1cM=";
};
vendorHash = "sha256-1cGlhLdnU6yTqzcB3J1cq3gawncbtdgkb3LFh2ZmXbM=";
meta = {
description = "Server-side implementation of the Git LFS pure-SSH protocol";
mainProgram = "git-lfs-transfer";
homepage = "https://github.com/charmbracelet/git-lfs-transfer";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ chn ];
};
}