settei/wrappers/rash/default.nix

60 lines
1.6 KiB
Nix

{
pkgs,
inputs,
config,
...
}:
{
wrappers.rash =
let
readlinePatched = pkgs.fetchFromGitHub {
owner = "nrabulinski";
repo = "readline";
rev = "8eb52c163d6ea7c3cec2cc6b1011ce00738942e1";
hash = "sha256-1yU0ZUBQqYEn85j4T2pLs02MTyJnO5BbYALIa88iomY=";
};
racket-with-libs = inputs.racket.packages.${pkgs.system}.racket.newLayer {
withRacketPackages =
ps: with ps; [
readline-gpl
(readline-lib.override { src = "${readlinePatched}/readline-lib"; })
rash
threading
functional
racket-langserver
# TODO: Remove once dependency resolution is fixed
slideshow-lib
r5rs-lib
data-enumerate-lib
plot-lib
plot-gui-lib
plot-compat
srfi-lib
typed-racket-compatibility
future-visualizer-pict
macro-debugger-text-lib
profile-lib
images-gui-lib
];
buildInputs = with pkgs; [ readline ];
};
in
{
basePackage = pkgs.writeShellScriptBin "rash-repl" ''
exec "${racket-with-libs}/bin/rash-repl" "$@"
'';
# TODO: Shell shouldn't overwrite this variable. Probably
env.XDG_CONFIG_HOME = {
value = pkgs.linkFarm "rash-config" {
"rash/rashrc" = ./rashrc;
"rash/rashrc.rkt" = ./rashrc.rkt;
};
force = true;
};
pathAdd = [
racket-with-libs
config.wrappers.starship.wrapped
];
};
}