alqueva/overlays/derivations/xonsh/default.nix
2025-01-19 12:57:49 +00:00

111 lines
2.6 KiB
Nix

{
makeWrapper,
fetchFromGitHub,
symlinkJoin,
python3,
amadaluzian-starship,
zoxide,
}: let
xonsh =
(python3.override {
packageOverrides = pyprev: _pyfinal: {
custom-xonsh = pyprev.xonsh.overrideAttrs (finalAttrs: {
src = fetchFromGitHub {
owner = "amadaluzia";
repo = finalAttrs.pname;
rev = "8d01b29e0e9b4f7d63ec380ceb1e701302c33ee8";
hash = "sha256-jBAJTjH80GJ89u8r/zVWnMNXXi9V9qPw0AVy071a7rg=";
};
});
};
})
.withPackages (ps: [
ps.custom-xonsh
(let
pname = "xontrib-fish-completer";
version = "0.0.1";
in
ps.buildPythonPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "xonsh";
repo = pname;
rev = version;
hash = "sha256-PhhdZ3iLPDEIG9uDeR5ctJ9zz2+YORHBhbsiLrJckyA=";
};
})
(let
pname = "xontrib-prompt-starship";
version = "0.3.6";
in
ps.buildPythonPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "anki-code";
repo = pname;
tag = version;
hash = "sha256-CLOvMa3L4XnH53H/k6/1W9URrPakPjbX1T1U43+eSR0=";
};
})
# (let
# pname = "xontrib-init-ssh-agent";
# version = "1.0.1";
# in
# ps.buildPythonPackage {
# inherit pname version;
# pyproject = true;
# build-system = [
# ps.setuptools
# ps.wheel
# ];
# dependencies = [
# ps.xonsh
# ];
# src = fetchFromGitHub {
# owner = "amadaluzia";
# repo = pname;
# rev = "cac9cfec70ec15b0ed4f1c8a18154ea9b4f8fb47";
# hash = "sha256-UkRPdaZFNP8qv7lMwsTUalnre3k2UMfqMzmiTveLiBM=";
# };
# })
(let
pname = "xonsh-direnv";
version = "1.6.5";
in
ps.buildPythonPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "74th";
repo = pname;
tag = version;
hash = "sha256-huBJ7WknVCk+WgZaXHlL+Y1sqsn6TYqMP29/fsUPSyU=";
};
})
]);
in
symlinkJoin {
name = "xonsh";
paths = [
xonsh
amadaluzian-starship
zoxide
];
nativeBuildInputs = [
makeWrapper
];
postBuild = ''
wrapProgram $out/bin/xonsh \
--set XONSH_CONFIG_DIR ${./cfg}
'';
passthru = {
shellPath = "/bin/xonsh";
};
meta = {
mainProgram = "xonsh";
};
}