matabas/flake.nix

49 lines
1.5 KiB
Nix

{
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 ];
})];
};
};
}