diff options
author | Peter Bex <peter@more-magic.net> | 2023-03-19 10:06:45 +0100 |
---|---|---|
committer | Peter Bex <peter@more-magic.net> | 2023-03-19 10:46:25 +0100 |
commit | 9d05c9ca73c2b501744d528475532ab728318bde (patch) | |
tree | 66290d3bf9974ab7cf418508cc0937b838fd0343 /nix | |
download | ppq-9d05c9ca73c2b501744d528475532ab728318bde.tar.gz |
Initial version of "ppq" - portable PostgreSQL
This allows running PostgreSQL locally without having to set up a
system-wide service. It is portable in the sense that you can move
the directory around, and you can run multiple instances side-by-side.
Diffstat (limited to 'nix')
-rw-r--r-- | nix/default.nix | 15 | ||||
-rw-r--r-- | nix/pkgs.nix | 31 |
2 files changed, 46 insertions, 0 deletions
diff --git a/nix/default.nix b/nix/default.nix new file mode 100644 index 0000000..ba8291d --- /dev/null +++ b/nix/default.nix @@ -0,0 +1,15 @@ +{ + system ? builtins.currentSystem, + pkgs ? import ./pkgs.nix { inherit system; } +}: +let + lib = pkgs.lib; + shell = pkgs.mkShell { + name = "portable-postgresql"; + buildInputs = with pkgs; [ + ppq_postgresql + ]; + }; +in { + inherit shell pkgs; +} diff --git a/nix/pkgs.nix b/nix/pkgs.nix new file mode 100644 index 0000000..cd15894 --- /dev/null +++ b/nix/pkgs.nix @@ -0,0 +1,31 @@ +{ + system ? builtins.currentSystem, + nixpkgs ? builtins.fetchTarball { + url = "https://github.com/NixOS/nixpkgs/archive/22.11.tar.gz"; + sha256 = "11w3wn2yjhaa5pv20gbfbirvjq6i3m7pqrq2msf0g7cv44vijwgw"; + } +}: +let + # use the first version in the list for each component + getMajorVersion = builtins.getEnv "PPQ_POSTGRES_VERSION"; + + overlay = self: super: { + # NOTE: Overlaying `postgresql` is not possible anymore, leads to + # error: infinite recursion encountered + # + # TODO: Make extension packages more easily configurable. For now + # just load whatever we've ever needed. + ppq_postgresql = super."postgresql_${getMajorVersion}".withPackages (p: [ + p.postgis + ]); + }; + + pkgs = + import nixpkgs { + inherit system; + overlays = [ + overlay + ]; + }; +in +pkgs |