From 50fc33d90d9544864b9d9beaeed06baceee801f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Pacana?= Date: Thu, 25 Jun 2026 23:42:19 +0200 Subject: [PATCH] Fix Darwin-only shim configuration - Define Darwin-only attributes with `optionalAttrs` so Linux evaluation never reads an unset `scripts.docker.exec` option. - Keep pg_regress available on all platforms while adding the Docker shim only where Apple's `container` CLI needs translation. --- devenv.nix | 63 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/devenv.nix b/devenv.nix index 69178b9..d729740 100644 --- a/devenv.nix +++ b/devenv.nix @@ -39,7 +39,9 @@ devenv tasks run test ''; - env.OCIMAN_BACKEND = pkgs.lib.mkIf pkgs.stdenv.isDarwin "docker"; + env = pkgs.lib.optionalAttrs pkgs.stdenv.isDarwin { + OCIMAN_BACKEND = "docker"; + }; services.postgres = { enable = true; @@ -186,39 +188,40 @@ }; }; - scripts.docker.exec = pkgs.lib.mkIf pkgs.stdenv.isDarwin ( - builtins.readFile ( + scripts = { + pg-regress.exec = '' + set -euo pipefail + cd "$DEVENV_ROOT" + + rm -rf test/pg_regress/results + mkdir -p test/pg_regress/results + + ruby -r bundler/setup -r pg_ephemeral <<'RUBY' + exit( + PgEphemeral.with_server do |server| + system( + "${pkgs.postgresql_18.dev}/lib/pgxs/src/test/regress/pg_regress", + "--use-existing", + "--dbname=#{server.url}", + "--inputdir=test/pg_regress", + "--outputdir=test/pg_regress/results", + "--expecteddir=test/pg_regress", + "--bindir=${pkgs.postgresql_18}/bin", + "--schedule=test/pg_regress/schedule_existing", + ) ? 0 : 1 + end, + ) + RUBY + ''; + } + // pkgs.lib.optionalAttrs pkgs.stdenv.isDarwin { + docker.exec = builtins.readFile ( pkgs.fetchurl { url = "https://raw.githubusercontent.com/mostlyobvious/apple-container-docker-shim/refs/heads/main/bin/docker"; hash = "sha256-lg9Z5sMwthWUd9cogJpqkdWfacIl5ji4R/lLl4GdbGg="; } - ) - ); - - scripts.pg-regress.exec = '' - set -euo pipefail - cd "$DEVENV_ROOT" - - rm -rf test/pg_regress/results - mkdir -p test/pg_regress/results - - ruby -r bundler/setup -r pg_ephemeral <<'RUBY' - exit( - PgEphemeral.with_server do |server| - system( - "${pkgs.postgresql_18.dev}/lib/pgxs/src/test/regress/pg_regress", - "--use-existing", - "--dbname=#{server.url}", - "--inputdir=test/pg_regress", - "--outputdir=test/pg_regress/results", - "--expecteddir=test/pg_regress", - "--bindir=${pkgs.postgresql_18}/bin", - "--schedule=test/pg_regress/schedule_existing", - ) ? 0 : 1 - end, - ) - RUBY - ''; + ); + }; claude.code.enable = true; claude.code.hooks = { -- 2.51.2