{ 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}; in rec { packages = rec { postgres = pkgs.postgresql_15_jit; default = pkgs.hello; }; devShells.default = pkgs.mkShell { packages = [ packages.default packages.postgres ]; shellHook = '' set -e [ -d ./matabas-db ] || pg_ctl initdb --pgdata=./matabas-db mkdir -p ./matabas-db/socket [ -f matabas-db/matabas.log ] && mv -f matabas-db/matabas.log{,.old} pg_ctl start --pgdata=./matabas-db --log=./matabas-db/matabas.log --options="-p 2137" trap 'pg_ctl stop --pgdata=./matabas-db' EXIT createdb -p 2137 matabas || : 3 set +e ''; }; } ) // { 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 ]; })]; }; }; }