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 { };
|
||||
okc-agents = callPackage ./packages/okc-agents.nix { };
|
||||
_7zz = pkgs._7zz.override { useUasm = true; };
|
||||
mergiraf = callPackage ./packages/mergiraf.nix { };
|
||||
|
||||
# libraries
|
||||
libnfc-nci = callPackage ./packages/libnfc-nci { };
|
||||
|
|
|
@ -12,5 +12,6 @@
|
|||
imports = [
|
||||
(normalizeModule ./kakoune.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.
|
||||
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.
|
||||
# These aren't generated by Nix, specifically so we can use them on Windows as well.
|
||||
|
|
|
@ -67,6 +67,10 @@ with pkgs;
|
|||
cyberchef
|
||||
dasel
|
||||
delta
|
||||
deprekages.age-plugin-yubikey
|
||||
deprekages.avbroot
|
||||
deprekages.mergiraf
|
||||
difftastic
|
||||
dmidecode
|
||||
dterm
|
||||
edir
|
||||
|
@ -90,8 +94,6 @@ with pkgs;
|
|||
jre
|
||||
jmtpfs
|
||||
killall
|
||||
deprekages.age-plugin-yubikey
|
||||
deprekages.avbroot
|
||||
libimobiledevice
|
||||
libsecret
|
||||
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