Files
qotd/nix/package.nix

55 lines
1.1 KiB
Nix

{
lib
, uiua
, stdenvNoCC
, runtimeShell
}:
stdenvNoCC.mkDerivation {
pname = "qotd";
version = "unstable";
src = builtins.filterSource (path: type: let
baseName = baseNameOf (toString path);
in !(lib.any (b: b) [
(!(lib.cleanSourceFilter path type))
(type == "directory" && lib.elem baseName [
".direnv"
".git"
".jj"
"target"
"result"
])
(type == "regular" && lib.elem baseName [
"flake.nix"
"flake.lock"
"default.nix"
"module.nix"
".envrc"
])
(type == "regular" && lib.hasSuffix ".uasm" baseName)
])) ./..;
nativeBuildInputs = [ uiua ];
buildPhase = ''
runHook preBuild
uiua build --output .main.uasm main.ua
runHook postBuild
'';
wrapper = ''
#!${runtimeShell}
"${uiua}"/bin/uiua run ${placeholder "out"}/bin/.main.uasm
'';
passAsFile = [ "wrapper" ];
installPhase = ''
runHook preInstall
install -Dm444 .main.uasm -t "$out"/bin
install -Dm555 "$wrapperPath" "$out"/bin/qotd
runHook postInstall
'';
}