{ description = "ctucx.things inventory-app"; inputs = { flake-utils.url = "github:numtide/flake-utils"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; }; outputs = { self, nixpkgs, flake-utils }: { nixosModule = import ./nixosModule.nix; overlay = final: prev: { ctucx-things = final.mkYarnPackage rec { name = "ctucx-things"; src = self; packageJSON = ./package.json; yarnLock = ./yarn.lock; yarnNix = ./yarn.nix; doDist = false; buildPhase = '' export NODE_OPTIONS=--openssl-legacy-provider yarn build ''; installPhase = '' mkdir -p $out cp -r deps/ctucx.things/public/. $out ''; }; }; } // (flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; }; in rec { packages.default = pkgs.ctucx-things; packages.ctucx-things = pkgs.ctucx-things; devShells.default = pkgs.mkShell { nativeBuildInputs = [ pkgs.yarn pkgs.yarn2nix pkgs.php ]; shellHook = '' export NODE_OPTIONS=--openssl-legacy-provider alias serve="yarn build && php -S localhost:8080 -t public/" ''; }; } )); }