Merge pull request #141255 from mkg20001/lfs

authored by Maciej Krüger and committed by GitHub e4ef597e f01fbcad

+30 -6
+30 -6
nixos/modules/programs/git.nix
··· 31 31 section of git-config(1) for more information. 32 32 ''; 33 33 }; 34 - }; 35 - }; 34 + 35 + lfs = { 36 + enable = mkEnableOption "git-lfs"; 36 37 37 - config = mkIf cfg.enable { 38 - environment.systemPackages = [ cfg.package ]; 39 - environment.etc.gitconfig = mkIf (cfg.config != {}) { 40 - text = generators.toGitINI cfg.config; 38 + package = mkOption { 39 + type = types.package; 40 + default = pkgs.git-lfs; 41 + defaultText = literalExpression "pkgs.git-lfs"; 42 + description = "The git-lfs package to use"; 43 + }; 44 + }; 41 45 }; 42 46 }; 47 + 48 + config = mkMerge [ 49 + (mkIf cfg.enable { 50 + environment.systemPackages = [ cfg.package ]; 51 + environment.etc.gitconfig = mkIf (cfg.config != {}) { 52 + text = generators.toGitINI cfg.config; 53 + }; 54 + }) 55 + (mkIf (cfg.enable && cfg.lfs.enable) { 56 + environment.systemPackages = [ cfg.lfs.package ]; 57 + programs.git.config = { 58 + filter.lfs = { 59 + clean = "git-lfs clean -- %f"; 60 + smudge = "git-lfs smudge -- %f"; 61 + process = "git-lfs filter-process"; 62 + required = true; 63 + }; 64 + }; 65 + }) 66 + ]; 43 67 44 68 meta.maintainers = with maintainers; [ figsoda ]; 45 69 }