3 Commits

Author SHA1 Message Date
oysteikt fb8c05a5ca .gitea/workflows/check: init
Check / check (push) Successful in 54s
2026-05-08 03:22:20 +02:00
oysteikt 7247ddb779 flake.nix: make runnable app 2026-05-06 02:33:29 +09:00
oysteikt 700ddcc5b0 flake.nix: make nix package 2026-05-06 02:31:03 +09:00
4 changed files with 100 additions and 7 deletions
+18
View File
@@ -0,0 +1,18 @@
name: "Check"
on:
pull_request:
push:
jobs:
check:
runs-on: debian-latest
steps:
- uses: actions/checkout@v6
- name: Install sudo
run: apt-get update && apt-get -y install sudo
- name: Install nix
uses: https://github.com/cachix/install-nix-action@v31
- name: Check code
run: nix develop .# --command uiua check
+6
View File
@@ -0,0 +1,6 @@
# Uiua
*.uasm
# Nix
result
result-*
+32 -7
View File
@@ -5,13 +5,38 @@
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
];
};
apps = forAllSystems (system: pkgs: {
default = {
type = "app";
program = "${lib.getExe self.packages.${system}.default}";
meta.description = "Run uash as a normal executable";
};
});
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";
}