mirror of
https://github.com/nix-community/home-manager.git
synced 2026-06-05 21:02:51 +00:00
ec: init module
Adds Home Manager module for ec, a 3-way terminal native Git merge conflict resolver. The module supports: - Git integration by configuring ec as a mergetool.
This commit is contained in:
committed by
GitHub
parent
74f170c62d
commit
7519f615df
42
modules/programs/ec.nix
Normal file
42
modules/programs/ec.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.programs.ec;
|
||||
ec = lib.getExe cfg.package;
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.kpbaks ];
|
||||
|
||||
options = {
|
||||
programs.ec = {
|
||||
enable = lib.mkEnableOption "ec, 3-way terminal native Git merge conflict resolver";
|
||||
package = lib.mkPackageOption pkgs "ec" { };
|
||||
|
||||
enableGitIntegration = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable git integration for ec.
|
||||
|
||||
When enabled, ec will be configured as git's merge tool.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
|
||||
programs.git.settings = lib.mkIf cfg.enableGitIntegration {
|
||||
merge.tool = "ec";
|
||||
mergetool.ec = {
|
||||
cmd = ''${ec} "$BASE" "$LOCAL" "$REMOTE" "$MERGED"'';
|
||||
trustExitCode = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -49,6 +49,7 @@ let
|
||||
"discord"
|
||||
"discoss"
|
||||
"earthly"
|
||||
"ec"
|
||||
"element-desktop"
|
||||
"emacs"
|
||||
"espanso"
|
||||
|
||||
9
tests/modules/programs/ec/basic-configuration.nix
Normal file
9
tests/modules/programs/ec/basic-configuration.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
programs.git.enable = true;
|
||||
programs.ec.enable = true;
|
||||
programs.ec.enableGitIntegration = true;
|
||||
|
||||
nmt.script = ''
|
||||
assertFileContent "home-files/.config/git/config" ${./ec-git.conf}
|
||||
'';
|
||||
}
|
||||
3
tests/modules/programs/ec/default.nix
Normal file
3
tests/modules/programs/ec/default.nix
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
ec-basic-configuration = ./basic-configuration.nix;
|
||||
}
|
||||
12
tests/modules/programs/ec/ec-git.conf
Normal file
12
tests/modules/programs/ec/ec-git.conf
Normal file
@@ -0,0 +1,12 @@
|
||||
[gpg]
|
||||
format = "openpgp"
|
||||
|
||||
[gpg "openpgp"]
|
||||
program = "@gnupg@/bin/gpg"
|
||||
|
||||
[merge]
|
||||
tool = "ec"
|
||||
|
||||
[mergetool "ec"]
|
||||
cmd = "@ec@/bin/ec \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
|
||||
trustExitCode = true
|
||||
Reference in New Issue
Block a user