flake.nix: make nix package

This commit is contained in:
2026-05-06 02:31:03 +09:00
parent d29249a2a7
commit 700ddcc5b0
3 changed files with 74 additions and 7 deletions
+6
View File
@@ -0,0 +1,6 @@
# Uiua
*.uasm
# Nix
result
result-*
+24 -7
View File
@@ -5,13 +5,30 @@
outputs = { self, nixpkgs }:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
inherit (nixpkgs) lib;
systems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
forAllSystems = f: lib.genAttrs systems (system: let
pkgs = nixpkgs.legacyPackages.${system};
in f system pkgs);
in {
devShells.x86_64-linux.default = pkgs.mkShell {
buildInputs = with pkgs; [
uiua-unstable
];
};
devShells = forAllSystems (system: pkgs: {
default = pkgs.mkShell {
buildInputs = with pkgs; [
uiua-unstable
];
};
});
packages = forAllSystems (system: pkgs: {
default = self.packages.${system}.uash;
uash = pkgs.callPackage ./nix/package.nix { };
});
};
}
+44
View File
@@ -0,0 +1,44 @@
{
lib
, uiua
, stdenvNoCC
, runtimeShell
}:
stdenvNoCC.mkDerivation {
pname = "uash";
version = "unstable";
src = lib.fileset.toSource {
root = ./..;
fileset = lib.fileset.unions [
../uash.ua
];
};
nativeBuildInputs = [ uiua ];
buildPhase = ''
runHook preBuild
uiua build --output .uash.uasm uash.ua
runHook postBuild
'';
wrapper = ''
#!${runtimeShell}
"${uiua}"/bin/uiua run ${placeholder "out"}/bin/.uash.uasm
'';
passAsFile = [ "wrapper" ];
installPhase = ''
runHook preInstall
install -Dm444 .uash.uasm -t "$out"/bin
install -Dm555 "$wrapperPath" "$out"/bin/uash
runHook postInstall
'';
shellPath = "/bin/uash";
meta.mainProgram = "uash";
}