Merge pull request #240246 from adisbladis/xonsh-envs

xonsh: Add wrapper
This commit is contained in:
adisbladis 2023-07-08 14:26:43 +12:00 committed by GitHub
commit f2b2e6d098
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 15 deletions

View File

@ -28,7 +28,7 @@ in
type = types.package;
default = pkgs.xonsh;
defaultText = literalExpression "pkgs.xonsh";
example = literalExpression "pkgs.xonsh.override { configFile = \"/path/to/xonshrc\"; }";
example = literalExpression "pkgs.xonsh.override { extraPackages = ps: [ ps.requests ]; }";
description = lib.mdDoc ''
xonsh package to use.
'';
@ -83,4 +83,3 @@ in
};
}

View File

@ -1,12 +1,12 @@
{ lib
, fetchFromGitHub
, python3Packages
, python3
, glibcLocales
, coreutils
, git
}:
python3Packages.buildPythonApplication rec {
python3.pkgs.buildPythonApplication rec {
pname = "xonsh";
version = "0.14.0";
@ -29,16 +29,8 @@ python3Packages.buildPythonApplication rec {
find scripts -name 'xonsh*' -exec sed -i -e "s|env -S|env|" {} \;
find -name "*.xsh" | xargs sed -ie 's|/usr/bin/env|${coreutils}/bin/env|'
patchShebangs .
substituteInPlace scripts/xon.sh \
--replace 'python' "${python3Packages.python}/bin/python"
'';
makeWrapperArgs = [
"--prefix PYTHONPATH : ${placeholder "out"}/lib/${python3Packages.python.libPrefix}/site-packages"
];
disabledTests = [
# fails on sandbox
"test_colorize_file"
@ -71,9 +63,9 @@ python3Packages.buildPythonApplication rec {
'';
nativeCheckInputs = [ glibcLocales git ] ++
(with python3Packages; [ pyte pytestCheckHook pytest-mock pytest-subprocess ]);
(with python3.pkgs; [ pyte pytestCheckHook pytest-mock pytest-subprocess ]);
propagatedBuildInputs = with python3Packages; [ ply prompt-toolkit pygments ];
propagatedBuildInputs = with python3.pkgs; [ ply prompt-toolkit pygments ];
meta = with lib; {
description = "A Python-ish, BASHwards-compatible shell";
@ -85,5 +77,6 @@ python3Packages.buildPythonApplication rec {
passthru = {
shellPath = "/bin/xonsh";
python = python3;
};
}

View File

@ -0,0 +1,24 @@
{ runCommand
, xonsh-unwrapped
, lib
, extraPackages ? (ps: [ ])
}:
let
xonsh = xonsh-unwrapped;
inherit (xonsh.passthru) python;
pythonEnv = python.withPackages (ps: [
(ps.toPythonModule xonsh)
] ++ extraPackages ps);
in
runCommand "${xonsh.pname}-${xonsh.version}"
{
inherit (xonsh) pname version meta passthru;
} ''
mkdir -p $out/bin
for bin in ${lib.getBin xonsh}/bin/*; do
ln -s ${pythonEnv}/bin/$(basename "$bin") $out/bin/
done
''

View File

@ -14808,7 +14808,8 @@ with pkgs;
rush = callPackage ../shells/rush { };
xonsh = callPackage ../shells/xonsh { };
xonsh = callPackage ../shells/xonsh/wrapper.nix { };
xonsh-unwrapped = callPackage ../shells/xonsh { };
zsh = callPackage ../shells/zsh { };