aboutsummaryrefslogtreecommitdiff
path: root/nix/pkgs.nix
diff options
context:
space:
mode:
authorPeter Bex <peter@more-magic.net>2023-03-19 10:06:45 +0100
committerPeter Bex <peter@more-magic.net>2023-03-19 10:46:25 +0100
commit9d05c9ca73c2b501744d528475532ab728318bde (patch)
tree66290d3bf9974ab7cf418508cc0937b838fd0343 /nix/pkgs.nix
downloadppq-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/pkgs.nix')
-rw-r--r--nix/pkgs.nix31
1 files changed, 31 insertions, 0 deletions
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