Skip to content

Commit b18ccc9

Browse files
committed
Allow overriding PHP and WordPress versions
To override, you must set env vars like PHP_PACKAGE=php84 or WORDPRESS_PACKAGE=wordpress_6_8_1 and run a command with --impure. E.g., PHP_PACKAGE=php84 nix flake check --impure
1 parent 8787d5c commit b18ccc9

1 file changed

Lines changed: 12 additions & 13 deletions

File tree

dev/flake.nix

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,22 @@
1515
perSystem = { self', pkgs, config, lib, system, ... }:
1616
with pkgs;
1717
let
18+
getEnv = name: default:
19+
(if "" == builtins.getEnv name then
20+
default
21+
else
22+
builtins.getEnv name);
1823
dbName = "wordpress";
1924
dbPort = 3306;
2025
dbUserName = "wordpress";
2126
dbUserPass = "8BVMm2jqDE6iADNyfaVCxoCzr3eBY6Ep";
2227
serverPort = 8888;
23-
phpVersions = {
24-
php81 = php81;
25-
php82 = php82;
26-
php83 = php83;
27-
php84 = php84;
28-
};
29-
phpBins = lib.attrsets.mapAttrsToList (name: phpPkg:
30-
pkgs.writeShellScriptBin name ''${phpPkg}/bin/php "$@"'')
31-
phpVersions;
32-
php = php84.buildEnv {
28+
phpPackage = getEnv "PHP_PACKAGE" "php";
29+
php = pkgs.${phpPackage}.buildEnv {
3330
extensions = { enabled, all }:
3431
enabled ++ (with all; [ imagick memcached ]);
3532
};
33+
wordpressPackage = getEnv "WORDPRESS_PACKAGE" "default";
3634
wp2staticLib = inputs.wp2static.lib.${system};
3735
wp2staticPkgs = inputs.wp2static.packages.${system};
3836
wp2static = wp2staticPkgs.plugin;
@@ -150,6 +148,8 @@
150148
}).format { };
151149
update-wordpress =
152150
inputs.wordpress-flake.packages.${system}.update-wordpress;
151+
wordpress =
152+
inputs.wordpress-flake.packages.${system}.${wordpressPackage};
153153
wpConfig = inputs.wordpress-flake.lib.${system}.mkWPConfig {
154154
inherit pkgs lib;
155155
name = "wp-config.php";
@@ -208,7 +208,7 @@
208208
mkdir -p ./data/wordpress1
209209
chmod ug+w ./data/wordpress1/wp-config.php || true
210210
cp "${wpConfig}" "./data/wordpress1/wp-config.php"
211-
${update-wordpress}/bin/update-wordpress ./data/wordpress1
211+
${update-wordpress}/bin/update-wordpress ./data/wordpress1 ${wordpress}
212212
cd ./data/wordpress1
213213
${pkgs.wp-cli}/bin/wp core install --url="https://example.com" --title=WordPress --admin_user=user --admin_email="user@example.com" --admin_password=pass
214214
${pkgs.wp-cli}/bin/wp option update permalink_structure "/%postname%/"
@@ -220,8 +220,7 @@
220220

221221
devShells.default = pkgs.mkShell {
222222
buildInputs =
223-
[ omnix php phpunit phpPackages.composer shellcheck wp-cli ]
224-
++ phpBins;
223+
[ omnix php phpunit phpPackages.composer shellcheck wp-cli ];
225224
inputsFrom =
226225
[ config.process-compose."default".services.outputs.devShell ];
227226
};

0 commit comments

Comments
 (0)