From e6ed60548397627bf10f561f9438201dbba0a36e Mon Sep 17 00:00:00 2001 From: Azat Bahawi Date: Sun, 21 Apr 2024 02:15:42 +0300 Subject: 2024-04-21 --- modules/subversion.nix | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 modules/subversion.nix (limited to 'modules/subversion.nix') diff --git a/modules/subversion.nix b/modules/subversion.nix new file mode 100644 index 0000000..9398592 --- /dev/null +++ b/modules/subversion.nix @@ -0,0 +1,55 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; +let + cfg = config.nixfiles.modules.subversion; +in +{ + options.nixfiles.modules.subversion.enable = mkEnableOption "Subversion"; + + config = mkIf cfg.enable { + nixfiles.modules.gnupg.enable = true; + + hm.home = { + file = { + ".subversion/config".text = generators.toINI { } { + auth = { + password-stores = "gpg-agent"; + ssl-client-cert-file-prompt = "no"; + store-passwords = "yes"; + store-auth-creds = "yes"; + }; + helpers = { + editor-cmd = getExe config.programs.vim.package; + diff-cmd = getExe pkgs.colordiff; + }; + miscellany = { + global-ignores = + with config.hm.programs.git; + optionalString (ignores != [ ]) (concatStringsSep " " ignores); + diff-ignore-content-type = "no"; + }; + working-copy = { + exclusive-locking-clients = "svn"; + exclusive-locking = true; + busy-timeout = 10000; + }; + }; + + ".subversion/servers".text = generators.toINI { } { + global = { + store-auth-creds = "yes"; + store-passwords = "yes"; + store-plaintext-passwords = "yes"; + }; + }; + }; + + packages = [ (pkgs.subversionClient.override { saslSupport = true; }) ]; + }; + }; +} -- cgit v1.2.3