{ description = "Matabas — databas för mat"; inputs = { nixpkgs.url = "github:NixOs/nixpkgs/nixos-23.05"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; buildInputs = [ pkgs.postgresql_15_jit ( pkgs.ghc.withPackages (ps: with ps; [ scotty postgresql-typed http-client-tls aeson ]) ) ]; in rec { packages = { matabas = pkgs.stdenv.mkDerivation { name = "matabas"; src = ./. ; inherit buildInputs ; buildPhase = builtins.readFile ./buildScripts/setupEnv.sh + '' build mkdir -p "$out/bin" mv artifacts/Main "$out/bin/matabas" ''; }; default = packages.matabas; }; devShells.default = pkgs.mkShell { packages = buildInputs; shellHook = builtins.readFile ./buildScripts/setupEnv.sh ; }; } ) // { nixosConfigurations.matabas-container = let pkgs = nixpkgs.legacyPackages.x86_64-linux; in nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [({ pkgs, ... }: { boot.isContainer = true; system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev; system.stateVersion = "23.05"; environment.systemPackages = [ self.packages.x86_64-linux.default ]; })]; }; }; }