Files
dotfiles/nix/overlays/xonsh.nix
2022-05-17 11:19:12 -07:00

48 lines
1.3 KiB
Nix

final: prev: {
xonsh = prev.xonsh.overrideAttrs (old: rec {
version = "0.12.4";
src = final.fetchFromGitHub {
owner = "xonsh";
repo = "xonsh";
rev = version;
sha256 = "0kdps0gf0767zy0fs6qn39rv4z3x7ck0qz1pzx6962593171yk8b";
};
propagatedBuildInputs = prev.xonsh.propagatedBuildInputs ++ [final.python3Packages.virtualenv];
});
python39 = prev.python39.override {
self = prev.python3;
packageOverrides = pself: psuper: {
prompt-toolkit = psuper.prompt-toolkit.overrideAttrs final.ptk-override;
};
};
ptk-override = (old: rec {
version = "3.0.29";
src = final.python3Packages.fetchPypi {
pname = "prompt_toolkit";
inherit version;
sha256 = "sha256-vWQPYOjOzXTw3CSXE9QzrOLdxitl7gf5bTWOCxUrbqc=";
};
});
# Mach-nix is a toolkit for constructing custom Python environments
mach-nix = import (builtins.fetchGit {
url = "https://github.com/DavHau/mach-nix/";
ref = "refs/tags/3.4.0";
}) {
pkgs = final;
};
xonsh_pyenv = final.mach-nix.mkPython {
requirements = ''
xontrib-fzf-widgets
xonsh-direnv
'';
};
xonsh_with_plugins = final.xonsh.overrideAttrs (old: {
propagatedBuildInputs = old.propagatedBuildInputs ++ final.xonsh_pyenv.python.pkgs.selectPkgs final.xonsh_pyenv.python.pkgs;
});
}