{ description = "Quixos Camino package runtime helpers"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; quixos-protocol.url = "path:../../quixos-protocol"; }; outputs = { self, nixpkgs, flake-utils, quixos-protocol, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; protocol = quixos-protocol.packages.${system}.default; runtimeSource = pkgs.stdenvNoCC.mkDerivation { name = "quixos-camino-package-runtime-source"; src = pkgs.lib.cleanSource ./.; dontConfigure = true; dontBuild = true; installPhase = '' runHook preInstall cp -R . "$out" runHook postInstall ''; }; runtimeProject = (pkgs.callPackage ./yarn-project.nix { }) { src = ./.; overrideAttrs = old: { nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.protobuf ]; buildPhase = '' runHook preBuild export QUIXOS_PROTO_PATH="${pkgs.protobuf}/include:${protocol}/proto''${QUIXOS_PROTO_PATH:+:$QUIXOS_PROTO_PATH}" yarn build runHook postBuild ''; }; }; in { packages.default = runtimeProject; packages.source = runtimeSource; devShells.default = pkgs.mkShell { packages = [ pkgs.nodejs_24 pkgs.protobuf pkgs.yarn-berry_4 ]; shellHook = '' if [ -n "''${PS1-}" ]; then if [ -n "''${QX_DEV_SHELL_PROMPT-}" ]; then PS1="''${PS1#\[qx:''${QX_DEV_SHELL_PROMPT}\] }" fi export QX_DEV_SHELL_PROMPT="camino-package-runtime" PS1="[qx:camino-package-runtime] $PS1" fi export QUIXOS_PROTO_PATH="${pkgs.protobuf}/include:$PWD/../../quixos-protocol/proto''${QUIXOS_PROTO_PATH:+:$QUIXOS_PROTO_PATH}" ''; }; }); }