test upload limits
This commit is contained in:
parent
fd750b54aa
commit
ec956c1ca8
3 changed files with 71 additions and 3 deletions
29
flake.nix
29
flake.nix
|
|
@ -12,11 +12,13 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
nixosModule = import ./nix/nixos-module.nix;
|
nixosModule = import ./nix/nixos-module.nix;
|
||||||
|
uploadLimits = import ./nix/upload-limits.nix;
|
||||||
in
|
in
|
||||||
utils.lib.eachDefaultSystem (
|
utils.lib.eachDefaultSystem (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
devPhp = pkgs.php;
|
||||||
packages = import ./nix/packages { inherit pkgs; };
|
packages = import ./nix/packages { inherit pkgs; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
@ -28,12 +30,37 @@
|
||||||
inherit nixpkgs system;
|
inherit nixpkgs system;
|
||||||
module = nixosModule;
|
module = nixosModule;
|
||||||
};
|
};
|
||||||
|
dev-php-upload-limits =
|
||||||
|
pkgs.runCommand "rabbi-gerzi-dev-php-upload-limits"
|
||||||
|
{
|
||||||
|
preferLocalBuild = true;
|
||||||
|
}
|
||||||
|
''
|
||||||
|
actual_upload_max_filesize="$(
|
||||||
|
${devPhp}/bin/php -r 'echo ini_get("upload_max_filesize");'
|
||||||
|
)"
|
||||||
|
actual_post_max_size="$(
|
||||||
|
${devPhp}/bin/php -r 'echo ini_get("post_max_size");'
|
||||||
|
)"
|
||||||
|
|
||||||
|
if [ "$actual_upload_max_filesize" != "${uploadLimits.phpUploadLimit}" ]; then
|
||||||
|
echo "upload_max_filesize was $actual_upload_max_filesize" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$actual_post_max_size" != "${uploadLimits.phpUploadLimit}" ]; then
|
||||||
|
echo "post_max_size was $actual_post_max_size" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$actual_upload_max_filesize" > $out
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
onefetch
|
onefetch
|
||||||
php
|
devPhp
|
||||||
phpPackages.composer
|
phpPackages.composer
|
||||||
phpPackages.php-codesniffer
|
phpPackages.php-codesniffer
|
||||||
vscode-langservers-extracted
|
vscode-langservers-extracted
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,9 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
evaluatedHostName =
|
uploadLimits = import ../upload-limits.nix;
|
||||||
|
|
||||||
|
evaluatedConfig =
|
||||||
(nixpkgs.lib.nixosSystem {
|
(nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
|
|
@ -25,13 +27,48 @@ let
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}).config.services.rabbi-gerzi.backend.hostName;
|
}).config;
|
||||||
|
|
||||||
|
evaluatedHostName = evaluatedConfig.services.rabbi-gerzi.backend.hostName;
|
||||||
|
|
||||||
|
backendVirtualHost = evaluatedConfig.services.nginx.virtualHosts.${evaluatedHostName};
|
||||||
|
|
||||||
|
phpOptions = evaluatedConfig.services.phpfpm.pools.rabbi-gerzi.phpOptions;
|
||||||
|
|
||||||
|
expectedUploadMaxFilesize = "upload_max_filesize = ${uploadLimits.phpUploadLimit}";
|
||||||
|
|
||||||
|
expectedPostMaxSize = "post_max_size = ${uploadLimits.phpUploadLimit}";
|
||||||
|
|
||||||
|
expectedNginxClientMaxBodySize = "client_max_body_size ${uploadLimits.nginxClientMaxBodySize};";
|
||||||
|
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
passed = lib.hasInfix expectedUploadMaxFilesize phpOptions;
|
||||||
|
message = "php-fpm upload_max_filesize is not 6M";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
passed = lib.hasInfix expectedPostMaxSize phpOptions;
|
||||||
|
message = "php-fpm post_max_size is not 6M";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
passed = lib.hasInfix expectedNginxClientMaxBodySize backendVirtualHost.extraConfig;
|
||||||
|
message = "nginx client_max_body_size is not 6m";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
failedAssertions = lib.filter (assertion: !assertion.passed) assertions;
|
||||||
in
|
in
|
||||||
pkgs.runCommand "rabbi-gerzi-module-eval"
|
pkgs.runCommand "rabbi-gerzi-module-eval"
|
||||||
{
|
{
|
||||||
|
failures = lib.concatMapStringsSep "\n" (assertion: assertion.message) failedAssertions;
|
||||||
value = evaluatedHostName;
|
value = evaluatedHostName;
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
|
if [ -n "$failures" ]; then
|
||||||
|
printf '%s\n' "$failures" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "$value" > $out
|
echo "$value" > $out
|
||||||
''
|
''
|
||||||
|
|
|
||||||
4
nix/upload-limits.nix
Normal file
4
nix/upload-limits.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
nginxClientMaxBodySize = "6m";
|
||||||
|
phpUploadLimit = "6M";
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue