export symfony cli

This commit is contained in:
Lukas Wurzinger 2025-04-11 14:24:41 +02:00
parent a0e1acec0e
commit be9fb9278e
No known key found for this signature in database
3 changed files with 100 additions and 22 deletions

View file

@ -95,11 +95,11 @@
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1743783972,
"narHash": "sha256-5wPsNCnWmeLpLxavsftA9L7tnYgtlexV7FwLegxtpy4=",
"lastModified": 1744298740,
"narHash": "sha256-m5RnbHQqYQhQA4ntohXlJsiIsOAKx+pz/vOC+E+FmHg=",
"owner": "cachix",
"repo": "devenv",
"rev": "2f53e2f867e0c2ba18b880e66169366e5f8ca554",
"rev": "028c6a38fb0284c96691176bd31626bf36981129",
"type": "github"
},
"original": {
@ -350,11 +350,11 @@
},
"hardware": {
"locked": {
"lastModified": 1743420942,
"narHash": "sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo=",
"lastModified": 1744366945,
"narHash": "sha256-OuLhysErPHl53BBifhesrRumJNhrlSgQDfYOTXfgIMg=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "de6fc5551121c59c01e2a3d45b277a6d05077bc4",
"rev": "1fe3cc2bc5d2dc9c81cb4e63d2f67c1543340df1",
"type": "github"
},
"original": {
@ -504,11 +504,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1744137608,
"narHash": "sha256-KEuKL7lM2ZqKzvaGIptVDAce29CAR4ZSgWtFD3PnpB0=",
"lastModified": 1744369853,
"narHash": "sha256-rVW9J8gMUFj8PsFV2TgNiNuJd8+O+FUizEQgl1ooQFY=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "d20b15f629985fe6900925bef462f947e4a75b2f",
"rev": "c2b4dd2f85d558c7147bc06c6417f87aa1775ad5",
"type": "github"
},
"original": {
@ -581,11 +581,11 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1743975612,
"narHash": "sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD+WsspPHa+qEQT8=",
"lastModified": 1744168086,
"narHash": "sha256-S9M4HddBCxbbX1CKSyDYgZ8NCVyHcbKnBfoUXeRu2jQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a880f49904d68b5e53338d1e8c7bf80f59903928",
"rev": "60e405b241edb6f0573f3d9f944617fe33ac4a73",
"type": "github"
},
"original": {
@ -677,11 +677,11 @@
},
"nixpkgs_7": {
"locked": {
"lastModified": 1743964447,
"narHash": "sha256-nEo1t3Q0F+0jQ36HJfbJtiRU4OI+/0jX/iITURKe3EE=",
"lastModified": 1744098102,
"narHash": "sha256-tzCdyIJj9AjysC3OuKA+tMD/kDEDAF9mICPDU7ix0JA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "063dece00c5a77e4a0ea24e5e5a5bd75232806f8",
"rev": "c8cd81426f45942bb2906d5ed2fe21d2f19d95b7",
"type": "github"
},
"original": {
@ -802,11 +802,11 @@
]
},
"locked": {
"lastModified": 1744079607,
"narHash": "sha256-5cog6Qd6w/bINdLO5mOysAHOHey8PwFXk4IWo+y+Czg=",
"lastModified": 1744338850,
"narHash": "sha256-pwMIVmsb8fjjT92n5XFDqCsplcX70qVMMT7NulumPXs=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "f6b62cc99c25e79a1c17e9fca91dc6b6faebec6c",
"rev": "5e64aecc018e6f775572609e7d7485fdba6985a7",
"type": "github"
},
"original": {

View file

@ -70,9 +70,15 @@
];
};
packages = lib.packagesFromDirectoryRecursive {
packages =
lib.packagesFromDirectoryRecursive {
inherit (pkgs) callPackage;
directory = ./packages;
}
// {
symfony-cli = pkgs.callPackage ./symfony-cli/package.nix {
fossarPhps = inputs'.phps.packages;
};
};
};
};

72
symfony-cli/package.nix Normal file
View file

@ -0,0 +1,72 @@
{
lib,
fossarPhps,
symlinkJoin,
symfony-cli,
makeWrapper,
}: let
supportedPhps = [
"php72"
"php73"
"php74"
"php80"
"php81"
"php82"
"php83"
"php84"
];
extraConfig = ''
memory_limit = -1
xdebug.mode = develop,coverage,gcstats,profile,debug,trace
xdebug.discover_client_host = 1
xdebug.client_host = localhost
'';
# Wrap all PHP versions with the extensions I need and bundle composer
phps = lib.genAttrs supportedPhps (
phpName: let
phpBase = fossarPhps.${phpName};
phpWithEnv = phpBase.buildEnv {
extensions = {
enabled,
all,
}:
enabled
++ [all.xdebug]
++ (
if (lib.versionAtLeast phpBase.version "8")
then [all.amqp]
else []
);
inherit extraConfig;
};
phpWithTools = symlinkJoin {
inherit (phpWithEnv) name version meta passthru;
paths = [
phpWithEnv
phpWithEnv.packages.composer
];
};
in
phpWithTools
);
package = symfony-cli;
in
# Tell Symfony's CLI where it can access the different PHP versions
symlinkJoin {
inherit (package) pname version meta;
paths = [package];
buildInputs = [makeWrapper];
postBuild = ''
wrapProgram $out/bin/${package.meta.mainProgram} \
--suffix PATH : ${lib.makeBinPath (
builtins.attrValues phps
)}
'';
}