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

View file

@ -70,10 +70,16 @@
]; ];
}; };
packages = lib.packagesFromDirectoryRecursive { packages =
inherit (pkgs) callPackage; lib.packagesFromDirectoryRecursive {
directory = ./packages; 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
)}
'';
}