git: add mergiraf and difftastic
This commit is contained in:
parent
5e14c5aff4
commit
919ee3e5cf
6 changed files with 94 additions and 21 deletions
|
@ -144,6 +144,7 @@
|
||||||
avbroot = callPackage ./packages/avbroot { };
|
avbroot = callPackage ./packages/avbroot { };
|
||||||
okc-agents = callPackage ./packages/okc-agents.nix { };
|
okc-agents = callPackage ./packages/okc-agents.nix { };
|
||||||
_7zz = pkgs._7zz.override { useUasm = true; };
|
_7zz = pkgs._7zz.override { useUasm = true; };
|
||||||
|
mergiraf = callPackage ./packages/mergiraf.nix { };
|
||||||
|
|
||||||
# libraries
|
# libraries
|
||||||
libnfc-nci = callPackage ./packages/libnfc-nci { };
|
libnfc-nci = callPackage ./packages/libnfc-nci { };
|
||||||
|
|
|
@ -12,5 +12,6 @@
|
||||||
imports = [
|
imports = [
|
||||||
(normalizeModule ./kakoune.hm.nix)
|
(normalizeModule ./kakoune.hm.nix)
|
||||||
(normalizeModule ./kakoune-lsp.hm.nix)
|
(normalizeModule ./kakoune-lsp.hm.nix)
|
||||||
|
(normalizeModule ./git.hm.nix)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
59
nixos/configs/dotfiles/git.hm.nix
Normal file
59
nixos/configs/dotfiles/git.hm.nix
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
{ deprekages, pkgs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
#
|
||||||
|
# Git.
|
||||||
|
#
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
|
||||||
|
# Note: we no longer set a name, here, forcing us to choose our e-mail and username
|
||||||
|
# on a per-project basis.
|
||||||
|
|
||||||
|
# Proide the difftastic command.
|
||||||
|
difftastic.enable = true;
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
# Use main as our branch names.
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
|
||||||
|
#
|
||||||
|
# Use mergiraf.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set up the merge driver...
|
||||||
|
merge.mergiraf = {
|
||||||
|
name = "mergiraf";
|
||||||
|
driver = "${deprekages.mergiraf}/bin/mergiraf merge --git %O %A %B -s %S -x %X -y %Y -p %P";
|
||||||
|
};
|
||||||
|
|
||||||
|
# ... and set when to use it.
|
||||||
|
core.attributesFile = toString (
|
||||||
|
pkgs.writeText ".gitattributes" ''
|
||||||
|
*.java merge=mergiraf
|
||||||
|
*.rs merge=mergiraf
|
||||||
|
*.go merge=mergiraf
|
||||||
|
*.js merge=mergiraf
|
||||||
|
*.jsx merge=mergiraf
|
||||||
|
*.json merge=mergiraf
|
||||||
|
*.yml merge=mergiraf
|
||||||
|
*.yaml merge=mergiraf
|
||||||
|
*.html merge=mergiraf
|
||||||
|
*.htm merge=mergiraf
|
||||||
|
*.xhtml merge=mergiraf
|
||||||
|
*.xml merge=mergiraf
|
||||||
|
*.c merge=mergiraf
|
||||||
|
*.cc merge=mergiraf
|
||||||
|
*.h merge=mergiraf
|
||||||
|
*.cpp merge=mergiraf
|
||||||
|
*.hpp merge=mergiraf
|
||||||
|
*.cs merge=mergiraf
|
||||||
|
*.dart merge=mergiraf
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -6,25 +6,6 @@
|
||||||
# Tie our configruation to the version it was written for.
|
# Tie our configruation to the version it was written for.
|
||||||
home.stateVersion = "24.05";
|
home.stateVersion = "24.05";
|
||||||
|
|
||||||
#
|
|
||||||
# Git.
|
|
||||||
#
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
lfs.enable = true;
|
|
||||||
|
|
||||||
# Note: we no longer set a name, here, forcing us to choose our e-mail and username
|
|
||||||
# on a per-project basis.
|
|
||||||
|
|
||||||
# Use main as our branch names.
|
|
||||||
extraConfig = {
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Manuals are broken on macOS, for now. :(
|
|
||||||
manual.manpages.enable = false;
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# "Raw file" dotfiles.
|
# "Raw file" dotfiles.
|
||||||
# These aren't generated by Nix, specifically so we can use them on Windows as well.
|
# These aren't generated by Nix, specifically so we can use them on Windows as well.
|
||||||
|
|
|
@ -67,6 +67,10 @@ with pkgs;
|
||||||
cyberchef
|
cyberchef
|
||||||
dasel
|
dasel
|
||||||
delta
|
delta
|
||||||
|
deprekages.age-plugin-yubikey
|
||||||
|
deprekages.avbroot
|
||||||
|
deprekages.mergiraf
|
||||||
|
difftastic
|
||||||
dmidecode
|
dmidecode
|
||||||
dterm
|
dterm
|
||||||
edir
|
edir
|
||||||
|
@ -90,8 +94,6 @@ with pkgs;
|
||||||
jre
|
jre
|
||||||
jmtpfs
|
jmtpfs
|
||||||
killall
|
killall
|
||||||
deprekages.age-plugin-yubikey
|
|
||||||
deprekages.avbroot
|
|
||||||
libimobiledevice
|
libimobiledevice
|
||||||
libsecret
|
libsecret
|
||||||
lz4
|
lz4
|
||||||
|
|
29
packages/mergiraf.nix
Normal file
29
packages/mergiraf.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
rustPlatform,
|
||||||
|
fetchFromGitea,
|
||||||
|
}:
|
||||||
|
|
||||||
|
rustPlatform.buildRustPackage rec {
|
||||||
|
pname = "mergiraf";
|
||||||
|
version = "0.3.1";
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
src = fetchFromGitea {
|
||||||
|
domain = "codeberg.org";
|
||||||
|
owner = "mergiraf";
|
||||||
|
repo = "mergiraf";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-ORCGGSODZnZH3Ukzmqrweth4KggWGt5YFYEqA4DbTls=";
|
||||||
|
};
|
||||||
|
|
||||||
|
cargoHash = "sha256-Rr59x+/sDA0ttkVZh7hVhnvkNogQj9q9aXomNjHIXII=";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A syntax-aware git merge driver for a growing collection of programming languages and file formats";
|
||||||
|
homepage = "https://codeberg.org/mergiraf/mergiraf/releases";
|
||||||
|
license = lib.licenses.gpl3Only;
|
||||||
|
mainProgram = "mergiraf";
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue