60 lines
1.6 KiB
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
|
|
];
|
|
};
|
|
}
|