fix(devkit): paths being overriden instead of appended

This commit is contained in:
Guz
2025-02-12 20:31:46 -03:00
parent 6210ec6cc9
commit c87b164c3c
7 changed files with 45 additions and 50 deletions

View File

@@ -8,5 +8,7 @@
shell = zsh; shell = zsh;
addPath = [ghostty git lazygit starship yazi zsh]; addPath = [ghostty git lazygit starship yazi zsh];
}; };
zsh = pkgs.callPackage ./zsh {inherit starship;}; zsh = pkgs.callPackage ./zsh {
addPath = [git lazygit starship yazi];
};
} }

View File

@@ -4,7 +4,6 @@
pkgs, pkgs,
lib, lib,
ghostty ? pkgs.ghostty, ghostty ? pkgs.ghostty,
paths ? [],
}: let }: let
colors = import ../colors.nix; colors = import ../colors.nix;
theme = pkgs.writeText "theme" '' theme = pkgs.writeText "theme" ''
@@ -37,14 +36,11 @@
nativeBuildInputs = [makeWrapper]; nativeBuildInputs = [makeWrapper];
postBuild = '' postBuild = ''
wrapProgram $out/bin/ghostty ${ wrapProgram $out/bin/ghostty \
if (builtins.length paths) > 0 --add-flags '--theme=${theme}'
then "$PATH:${lib.makeBinPath paths}"
else ""
} --add-flags '--theme=${theme}'
''; '';
} }
// {inherit (ghostty) name pname meta;}); // {inherit (ghostty) name pname meta man shell_integration terminfo;});
in in
pkgs.stdenv.mkDerivation (rec { pkgs.stdenv.mkDerivation (rec {
name = drv.name; name = drv.name;
@@ -64,4 +60,4 @@ in
cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop cp ${desktopEntry}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop
''; '';
} }
// {inherit (ghostty) meta;}) // {inherit (ghostty) meta man shell_integration terminfo;})

View File

@@ -4,7 +4,6 @@
pkgs, pkgs,
lib, lib,
git ? pkgs.git, git ? pkgs.git,
paths ? [],
}: let }: let
drv = symlinkJoin ({ drv = symlinkJoin ({
paths = git; paths = git;
@@ -12,24 +11,22 @@
nativeBuildInputs = [makeWrapper]; nativeBuildInputs = [makeWrapper];
postBuild = '' postBuild = ''
wrapProgram $out/bin/git ${ wrapProgram $out/bin/git \
if (builtins.length paths) > 0 --set-default 'GIT_CONFIG_COUNT' 7 \
then "$PATH:${lib.makeBinPath paths}" --set-default 'GIT_CONFIG_KEY_0' 'core.pager' \
else "" --set-default 'GIT_CONFIG_VALUE_0' '${lib.getExe pkgs.delta}' \
} \ --set-default 'GIT_CONFIG_KEY_1' 'credentials.helper' \
--set-default 'GIT_CONFIG_COUNT' 6 \ --set-default 'GIT_CONFIG_VALUE_1' 'store' \
--set-default 'GIT_CONFIG_KEY_0' 'core.pager' \ --set-default 'GIT_CONFIG_KEY_2' 'interactive.diffFilter' \
--set-default 'GIT_CONFIG_VALUE_0' '${lib.getExe pkgs.delta}' \ --set-default 'GIT_CONFIG_VALUE_2' '${lib.getExe pkgs.delta} --color-only' \
--set-default 'GIT_CONFIG_KEY_1' 'credentials.helper' \ --set-default 'GIT_CONFIG_KEY_3' 'signing.signByDefault' \
--set-default 'GIT_CONFIG_VALUE_1' 'store' \ --set-default 'GIT_CONFIG_VALUE_3' 'true' \
--set-default 'GIT_CONFIG_KEY_2' 'interactive.diffFilter' \ --set-default 'GIT_CONFIG_KEY_4' 'user.email' \
--set-default 'GIT_CONFIG_VALUE_2' '${lib.getExe pkgs.delta} --color-only' \ --set-default 'GIT_CONFIG_VALUE_4' 'contact@guz.one' \
--set-default 'GIT_CONFIG_KEY_3' 'signing.signByDefault' \ --set-default 'GIT_CONFIG_KEY_5' 'user.name' \
--set-default 'GIT_CONFIG_VALUE_3' 'true' \ --set-default 'GIT_CONFIG_VALUE_5' 'Gustavo "Guz" L de Mello' \
--set-default 'GIT_CONFIG_KEY_4' 'user.email' \ --set-default 'GIT_CONFIG_KEY_6' 'commit.gpgsign' \
--set-default 'GIT_CONFIG_VALUE_4' 'contact@guz.one' \ --set-default 'GIT_CONFIG_VALUE_6' 'true'
--set-default 'GIT_CONFIG_KEY_5' 'user.name' \
--set-default 'GIT_CONFIG_VALUE_5' 'Gustavo "Guz" L de Mello'
''; '';
} }
// {inherit (git) name pname meta;}); // {inherit (git) name pname meta;});

View File

@@ -4,7 +4,6 @@
pkgs, pkgs,
lib, lib,
lazygit ? pkgs.lazygit, lazygit ? pkgs.lazygit,
paths ? [],
settings ? {}, settings ? {},
}: let }: let
# YAML is a superset of JSON, so any JSON is valid YAML. # YAML is a superset of JSON, so any JSON is valid YAML.
@@ -33,11 +32,8 @@
nativeBuildInputs = [makeWrapper]; nativeBuildInputs = [makeWrapper];
postBuild = '' postBuild = ''
wrapProgram $out/bin/lazygit ${ wrapProgram $out/bin/lazygit \
if (builtins.length paths) > 0 --add-flags '--use-config-file' --add-flags '${cfg}'
then "$PATH:${lib.makeBinPath paths}"
else ""
} --add-flags '--use-config-file' --add-flags '${cfg}'
''; '';
} }
// {inherit (lazygit) name pname meta;}); // {inherit (lazygit) name pname meta;});

View File

@@ -4,7 +4,6 @@
pkgs, pkgs,
lib, lib,
yazi ? pkgs.yazi, yazi ? pkgs.yazi,
paths ? [],
}: let }: let
drv = symlinkJoin ({ drv = symlinkJoin ({
paths = yazi; paths = yazi;
@@ -12,11 +11,8 @@
nativeBuildInputs = [makeWrapper]; nativeBuildInputs = [makeWrapper];
postBuild = '' postBuild = ''
wrapProgram $out/bin/yazi ${ wrapProgram $out/bin/yazi \
if (builtins.length paths) > 0 --set-default YAZI_CONFIG_HOME ${./.}
then "$PATH:${lib.makeBinPath paths}"
else ""
} --set-default YAZI_CONFIG_HOME ${./.}
''; '';
} }
// {inherit (yazi) name pname meta;}); // {inherit (yazi) name pname meta;});

View File

@@ -50,14 +50,20 @@
''; '';
drv = symlinkJoin ({ drv = symlinkJoin ({
paths = zellij; paths = pkgs.writeShellScriptBin "zellij" ''
${
if (builtins.length addPath) > 0
then "export PATH=\"$PATH:${lib.makeBinPath addPath}\""
else ""
}
${lib.getExe zellij} "$@"
'';
nativeBuildInputs = [makeWrapper]; nativeBuildInputs = [makeWrapper];
postBuild = '' postBuild = ''
wrapProgram $out/bin/zellij \ wrapProgram $out/bin/zellij \
--set-default ZELLIJ_CONFIG_FILE ${config} \ --set-default ZELLIJ_CONFIG_FILE ${config}
--set PATH "${lib.makeBinPath addPath}"
''; '';
} }
// {inherit (zellij) name pname meta;}); // {inherit (zellij) name pname meta;});

View File

@@ -4,15 +4,11 @@
pkgs, pkgs,
lib, lib,
zsh ? pkgs.zsh, zsh ? pkgs.zsh,
starship ? pkgs.starship, addPath ? [],
# .zshrc # .zshrc
zshrc-prepend ? "", zshrc-prepend ? "",
zshrc-append ? "", zshrc-append ? "",
}: let }: let
packages = [
starship
];
zsh-syntax-highlighting = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"; zsh-syntax-highlighting = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh";
zsh-autosuggestions = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh"; zsh-autosuggestions = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh";
@@ -20,13 +16,19 @@
zshrc-append-file = pkgs.writeText ".zshrc_append" zshrc-append; zshrc-append-file = pkgs.writeText ".zshrc_append" zshrc-append;
drv = symlinkJoin ({ drv = symlinkJoin ({
paths = zsh; paths = pkgs.writeShellScriptBin "zsh" ''
${
if (builtins.length addPath) > 0
then "export PATH=\"$PATH:${lib.makeBinPath addPath}\""
else ""
}
${lib.getExe zsh} "$@"
'';
nativeBuildInputs = [makeWrapper]; nativeBuildInputs = [makeWrapper];
postBuild = '' postBuild = ''
wrapProgram $out/bin/zsh \ wrapProgram $out/bin/zsh \
--set-default 'PATH' '${lib.makeBinPath packages}:$PATH' \
--set-default 'ZSH_PLUGIN_SYNTAXHIGHLIGHING' '${zsh-syntax-highlighting}' \ --set-default 'ZSH_PLUGIN_SYNTAXHIGHLIGHING' '${zsh-syntax-highlighting}' \
--set-default 'ZSH_PLUGIN_AUTOSUGGESTIONS' '${zsh-autosuggestions}' \ --set-default 'ZSH_PLUGIN_AUTOSUGGESTIONS' '${zsh-autosuggestions}' \
--set-default 'ZSHRC_PREPEND' '${zshrc-prepend-file}' \ --set-default 'ZSHRC_PREPEND' '${zshrc-prepend-file}' \