Files
nix/packages/devkit/git/default.nix

54 lines
1.7 KiB
Nix

{
symlinkJoin,
makeWrapper,
pkgs,
lib,
git ? pkgs.git,
}: let
drv = symlinkJoin ({
paths = [git];
nativeBuildInputs = [makeWrapper];
postBuild = ''
wrapProgram $out/bin/git \
--set-default 'GIT_CONFIG_COUNT' 7 \
--set-default 'GIT_CONFIG_KEY_0' 'core.pager' \
--set-default 'GIT_CONFIG_VALUE_0' '${lib.getExe pkgs.delta}' \
--set-default 'GIT_CONFIG_KEY_1' 'credentials.helper' \
--set-default 'GIT_CONFIG_VALUE_1' 'store' \
--set-default 'GIT_CONFIG_KEY_2' 'interactive.diffFilter' \
--set-default 'GIT_CONFIG_VALUE_2' '${lib.getExe pkgs.delta} --color-only' \
--set-default 'GIT_CONFIG_KEY_3' 'signing.signByDefault' \
--set-default 'GIT_CONFIG_VALUE_3' 'true' \
--set-default 'GIT_CONFIG_KEY_4' 'user.email' \
--set-default 'GIT_CONFIG_VALUE_4' 'contact@guz.one' \
--set-default 'GIT_CONFIG_KEY_5' 'user.name' \
--set-default 'GIT_CONFIG_VALUE_5' 'Gustavo "Guz" L de Mello' \
--set-default 'GIT_CONFIG_KEY_6' 'commit.gpgsign' \
--set-default 'GIT_CONFIG_VALUE_6' 'true'
'';
}
// {inherit (git) name pname meta;});
in
pkgs.stdenv.mkDerivation (rec {
name = drv.name;
pname = drv.pname;
buildCommand = let
desktopEntry = pkgs.makeDesktopItem {
name = pname;
desktopName = name;
exec = "${lib.getExe drv}";
terminal = true;
};
in ''
mkdir -p $out/bin
cp ${lib.getExe drv} $out/bin
mkdir -p $out/share/applications
cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
'';
}
// {inherit (git) meta;})