diff --git a/drupal-cms/.gitignore b/drupal-cms/.gitignore index ce79774..5e79af2 100644 --- a/drupal-cms/.gitignore +++ b/drupal-cms/.gitignore @@ -43,3 +43,5 @@ /web/themes/contrib/ /web/update.php /web/web.config + +!/web/sites/default/settings.nix.php diff --git a/drupal-cms/flake.nix b/drupal-cms/flake.nix index 4e40030..929f68c 100644 --- a/drupal-cms/flake.nix +++ b/drupal-cms/flake.nix @@ -1,6 +1,9 @@ { inputs = { + devshell.inputs.nixpkgs.follows = "nixpkgs"; + devshell.url = "github:numtide/devshell"; flake-parts.url = "github:hercules-ci/flake-parts"; + import-tree.url = "github:vic/import-tree"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; process-compose.url = "github:Platonic-Systems/process-compose-flake"; services.url = "github:juspay/services-flake"; @@ -10,75 +13,6 @@ outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { - systems = import inputs.systems; - - imports = [ - inputs.process-compose.flakeModule - ]; - - perSystem = - { - config, - lib, - pkgs, - ... - }: - - let - php = pkgs.php.buildEnv { - extraConfig = '' - memory_limit = 128M - ''; - }; - - phpPackages = pkgs.phpPackages; - - databasePort = 3306; - webPort = 8000; - in - with lib; - { - - process-compose."default" = { - imports = [ - inputs.services.processComposeModules.default - ]; - - services = { - mysql."mysql1" = { - enable = true; - - initialDatabases = [ - { name = "drupal_cms"; } - ]; - - settings.mysqld.port = toString databasePort; - }; - }; - - settings.processes = { - php = { - command = pkgs.writeShellApplication { - name = "php-local-server"; - - text = "${getExe php} -S 127.0.0.1:${toString webPort} -t web"; - }; - - depends_on."mysql1".condition = "process_healthy"; - }; - }; - }; - - devShells.default = pkgs.mkShell { - inputsFrom = [ - config.process-compose."default".services.outputs.devShell - ]; - - nativeBuildInputs = [ - php - phpPackages.composer - ]; - }; - }; + imports = [ (inputs.import-tree ./tools/nix) ]; }; } diff --git a/drupal-cms/phpcs.xml.dist b/drupal-cms/phpcs.xml.dist new file mode 100644 index 0000000..101bc7a --- /dev/null +++ b/drupal-cms/phpcs.xml.dist @@ -0,0 +1,34 @@ + + + Codestyle ruleset for drupal-cms + + + + + + + + + + web/modules/custom + + + + + + + + + + + + + + + + + + + + + diff --git a/drupal-cms/phpstan.neon.dist b/drupal-cms/phpstan.neon.dist new file mode 100644 index 0000000..d4053d7 --- /dev/null +++ b/drupal-cms/phpstan.neon.dist @@ -0,0 +1,5 @@ +parameters: + level: max + + paths: + - web/modules/custom diff --git a/drupal-cms/phpunit.xml.dist b/drupal-cms/phpunit.xml.dist new file mode 100644 index 0000000..ed757a2 --- /dev/null +++ b/drupal-cms/phpunit.xml.dist @@ -0,0 +1,29 @@ + + + + + + + + + + + ./web/modules/custom/**/tests/**/Functional + + + + ./web/modules/custom/**/tests/**/Kernel + + + + ./web/modules/custom/**/tests/**/Unit + + + diff --git a/drupal-cms/tools/nix/dev-shells.nix b/drupal-cms/tools/nix/dev-shells.nix new file mode 100644 index 0000000..725449e --- /dev/null +++ b/drupal-cms/tools/nix/dev-shells.nix @@ -0,0 +1,31 @@ +{ inputs, ... }: + +{ + imports = [ inputs.devshell.flakeModule ]; + + perSystem = + { pkgs, ... }: + { + devshells.default = + with pkgs; + let + php = pkgs.php.buildEnv { + extraConfig = '' + memory_limit = 128M + ''; + }; + + phpPackages = pkgs.phpPackages; + in + { + packages = [ + mariadb + php + phpPackages.composer + phpactor + pv + yamlfmt + ]; + }; + }; +} diff --git a/drupal-cms/tools/nix/process-compose.nix b/drupal-cms/tools/nix/process-compose.nix new file mode 100644 index 0000000..9a1b759 --- /dev/null +++ b/drupal-cms/tools/nix/process-compose.nix @@ -0,0 +1,40 @@ +{ inputs, ... }: + +{ + imports = [ inputs.process-compose.flakeModule ]; + + perSystem = + { pkgs, ... }: + let + databasePort = 3306; + httpPort = 8888; + in + { + process-compose."default" = { + imports = [ + inputs.services.processComposeModules.default + ]; + + services = { + mysql."mysql" = { + enable = true; + + initialDatabases = [ + { name = "drupal_cms"; } + ]; + + settings.mysqld.port = toString databasePort; + }; + }; + + settings.processes.php = { + command = pkgs.writeShellApplication { + name = "drush-server"; + text = "vendor/bin/drush runserver ${toString httpPort}"; + }; + + depends_on."mysql".condition = "process_healthy"; + }; + }; + }; +} diff --git a/drupal-cms/tools/nix/systems.nix b/drupal-cms/tools/nix/systems.nix new file mode 100644 index 0000000..0a2a99c --- /dev/null +++ b/drupal-cms/tools/nix/systems.nix @@ -0,0 +1,5 @@ +{ inputs, ... }: + +{ + systems = import inputs.systems; +} diff --git a/drupal-cms/web/sites/default/settings.nix.php b/drupal-cms/web/sites/default/settings.nix.php new file mode 100644 index 0000000..0d00d82 --- /dev/null +++ b/drupal-cms/web/sites/default/settings.nix.php @@ -0,0 +1,12 @@ + 'drupal_cms', + 'username' => 'root', + 'password' => '', + 'host' => '127.0.0.1', + 'port' => '3306', + 'driver' => 'mysql', + 'prefix' => '', + 'collation' => 'utf8mb4_general_ci', +]; diff --git a/drupal-nix-flake/.gitignore b/drupal-nix-flake/.gitignore index ce79774..5e79af2 100644 --- a/drupal-nix-flake/.gitignore +++ b/drupal-nix-flake/.gitignore @@ -43,3 +43,5 @@ /web/themes/contrib/ /web/update.php /web/web.config + +!/web/sites/default/settings.nix.php diff --git a/drupal-nix-flake/flake.nix b/drupal-nix-flake/flake.nix index 093e3fe..929f68c 100644 --- a/drupal-nix-flake/flake.nix +++ b/drupal-nix-flake/flake.nix @@ -1,6 +1,9 @@ { inputs = { + devshell.inputs.nixpkgs.follows = "nixpkgs"; + devshell.url = "github:numtide/devshell"; flake-parts.url = "github:hercules-ci/flake-parts"; + import-tree.url = "github:vic/import-tree"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; process-compose.url = "github:Platonic-Systems/process-compose-flake"; services.url = "github:juspay/services-flake"; @@ -10,75 +13,6 @@ outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { - systems = import inputs.systems; - - imports = [ - inputs.process-compose.flakeModule - ]; - - perSystem = - { - config, - lib, - pkgs, - ... - }: - - let - php = pkgs.php83.buildEnv { - extraConfig = '' - memory_limit = 128M - ''; - }; - - phpPackages = pkgs.php83Packages; - - databasePort = 3306; - webPort = 8000; - in - with lib; - { - - process-compose."default" = { - imports = [ - inputs.services.processComposeModules.default - ]; - - services = { - mysql."mysql1" = { - enable = true; - - initialDatabases = [ - { name = "drupal_nix_flake_example"; } - ]; - - settings.mysqld.port = toString databasePort; - }; - }; - - settings.processes = { - php = { - command = pkgs.writeShellApplication { - name = "php-local-server"; - - text = "${getExe php} -S 127.0.0.1:${toString webPort} -t web"; - }; - - depends_on."mysql1".condition = "process_healthy"; - }; - }; - }; - - devShells.default = pkgs.mkShell { - inputsFrom = [ - config.process-compose."default".services.outputs.devShell - ]; - - nativeBuildInputs = [ - php - phpPackages.composer - ]; - }; - }; + imports = [ (inputs.import-tree ./tools/nix) ]; }; } diff --git a/drupal-nix-flake/phpcs.xml.dist b/drupal-nix-flake/phpcs.xml.dist new file mode 100644 index 0000000..964e3ad --- /dev/null +++ b/drupal-nix-flake/phpcs.xml.dist @@ -0,0 +1,34 @@ + + + Codestyle ruleset for drupal-nix-flake + + + + + + + + + + web/modules/custom + + + + + + + + + + + + + + + + + + + + + diff --git a/drupal-nix-flake/phpstan.neon.dist b/drupal-nix-flake/phpstan.neon.dist new file mode 100644 index 0000000..d4053d7 --- /dev/null +++ b/drupal-nix-flake/phpstan.neon.dist @@ -0,0 +1,5 @@ +parameters: + level: max + + paths: + - web/modules/custom diff --git a/drupal-nix-flake/phpunit.xml.dist b/drupal-nix-flake/phpunit.xml.dist index 538c107..ed757a2 100644 --- a/drupal-nix-flake/phpunit.xml.dist +++ b/drupal-nix-flake/phpunit.xml.dist @@ -1,41 +1,29 @@ + - - - ./web/modules/*/tests/src/* - - - - - - - - - - - - - - - + + + ./web/modules/custom/**/tests/**/Functional + + + + ./web/modules/custom/**/tests/**/Kernel + + + + ./web/modules/custom/**/tests/**/Unit + + diff --git a/drupal-nix-flake/tools/nix/dev-shells.nix b/drupal-nix-flake/tools/nix/dev-shells.nix new file mode 100644 index 0000000..08066ed --- /dev/null +++ b/drupal-nix-flake/tools/nix/dev-shells.nix @@ -0,0 +1,31 @@ +{ inputs, ... }: + +{ + imports = [ inputs.devshell.flakeModule ]; + + perSystem = + { pkgs, ... }: + { + devshells.default = + with pkgs; + let + php = pkgs.php83.buildEnv { + extraConfig = '' + memory_limit = 128M + ''; + }; + + phpPackages = pkgs.php83Packages; + in + { + packages = [ + mariadb + php + phpPackages.composer + phpactor + pv + yamlfmt + ]; + }; + }; +} diff --git a/drupal-nix-flake/tools/nix/process-compose.nix b/drupal-nix-flake/tools/nix/process-compose.nix new file mode 100644 index 0000000..870ad95 --- /dev/null +++ b/drupal-nix-flake/tools/nix/process-compose.nix @@ -0,0 +1,40 @@ +{ inputs, ... }: + +{ + imports = [ inputs.process-compose.flakeModule ]; + + perSystem = + { pkgs, ... }: + let + databasePort = 3306; + httpPort = 8888; + in + { + process-compose."default" = { + imports = [ + inputs.services.processComposeModules.default + ]; + + services = { + mysql."mysql" = { + enable = true; + + initialDatabases = [ + { name = "drupal_nix_flake_example"; } + ]; + + settings.mysqld.port = toString databasePort; + }; + }; + + settings.processes.php = { + command = pkgs.writeShellApplication { + name = "drush-server"; + text = "vendor/bin/drush runserver ${toString httpPort}"; + }; + + depends_on."mysql".condition = "process_healthy"; + }; + }; + }; +} diff --git a/drupal-nix-flake/tools/nix/systems.nix b/drupal-nix-flake/tools/nix/systems.nix new file mode 100644 index 0000000..0a2a99c --- /dev/null +++ b/drupal-nix-flake/tools/nix/systems.nix @@ -0,0 +1,5 @@ +{ inputs, ... }: + +{ + systems = import inputs.systems; +} diff --git a/drupal-nix-flake/web/sites/default/settings.nix.php b/drupal-nix-flake/web/sites/default/settings.nix.php new file mode 100644 index 0000000..0aa0303 --- /dev/null +++ b/drupal-nix-flake/web/sites/default/settings.nix.php @@ -0,0 +1,12 @@ + 'drupal_nix_flake_example', + 'username' => 'root', + 'password' => '', + 'host' => '127.0.0.1', + 'port' => '3306', + 'driver' => 'mysql', + 'prefix' => '', + 'collation' => 'utf8mb4_general_ci', +]; diff --git a/drupal/.gitignore b/drupal/.gitignore index ce79774..5e79af2 100644 --- a/drupal/.gitignore +++ b/drupal/.gitignore @@ -43,3 +43,5 @@ /web/themes/contrib/ /web/update.php /web/web.config + +!/web/sites/default/settings.nix.php diff --git a/drupal/flake.nix b/drupal/flake.nix index 989c537..929f68c 100644 --- a/drupal/flake.nix +++ b/drupal/flake.nix @@ -1,6 +1,9 @@ { inputs = { + devshell.inputs.nixpkgs.follows = "nixpkgs"; + devshell.url = "github:numtide/devshell"; flake-parts.url = "github:hercules-ci/flake-parts"; + import-tree.url = "github:vic/import-tree"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; process-compose.url = "github:Platonic-Systems/process-compose-flake"; services.url = "github:juspay/services-flake"; @@ -10,75 +13,6 @@ outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { - systems = import inputs.systems; - - imports = [ - inputs.process-compose.flakeModule - ]; - - perSystem = - { - config, - lib, - pkgs, - ... - }: - - let - php = pkgs.php83.buildEnv { - extraConfig = '' - memory_limit = 128M - ''; - }; - - phpPackages = pkgs.php83Packages; - - databasePort = 3306; - webPort = 8000; - in - with lib; - { - - process-compose."default" = { - imports = [ - inputs.services.processComposeModules.default - ]; - - services = { - mysql."mysql1" = { - enable = true; - - initialDatabases = [ - { name = "drupal-lab"; } - ]; - - settings.mysqld.port = toString databasePort; - }; - }; - - settings.processes = { - php = { - command = pkgs.writeShellApplication { - name = "php-local-server"; - - text = "${getExe php} -S 127.0.0.1:${toString webPort} -t web"; - }; - - depends_on."mysql1".condition = "process_healthy"; - }; - }; - }; - - devShells.default = pkgs.mkShell { - inputsFrom = [ - config.process-compose."default".services.outputs.devShell - ]; - - nativeBuildInputs = [ - php - phpPackages.composer - ]; - }; - }; + imports = [ (inputs.import-tree ./tools/nix) ]; }; } diff --git a/drupal/phpcs.xml.dist b/drupal/phpcs.xml.dist new file mode 100644 index 0000000..2a42846 --- /dev/null +++ b/drupal/phpcs.xml.dist @@ -0,0 +1,34 @@ + + + Codestyle ruleset for drupal + + + + + + + + + + web/modules/custom + + + + + + + + + + + + + + + + + + + + + diff --git a/drupal/phpstan.neon.dist b/drupal/phpstan.neon.dist new file mode 100644 index 0000000..d4053d7 --- /dev/null +++ b/drupal/phpstan.neon.dist @@ -0,0 +1,5 @@ +parameters: + level: max + + paths: + - web/modules/custom diff --git a/drupal/phpunit.xml.dist b/drupal/phpunit.xml.dist index 538c107..ed757a2 100644 --- a/drupal/phpunit.xml.dist +++ b/drupal/phpunit.xml.dist @@ -1,41 +1,29 @@ + - - - ./web/modules/*/tests/src/* - - - - - - - - - - - - - - - + + + ./web/modules/custom/**/tests/**/Functional + + + + ./web/modules/custom/**/tests/**/Kernel + + + + ./web/modules/custom/**/tests/**/Unit + + diff --git a/drupal/tools/nix/dev-shells.nix b/drupal/tools/nix/dev-shells.nix new file mode 100644 index 0000000..08066ed --- /dev/null +++ b/drupal/tools/nix/dev-shells.nix @@ -0,0 +1,31 @@ +{ inputs, ... }: + +{ + imports = [ inputs.devshell.flakeModule ]; + + perSystem = + { pkgs, ... }: + { + devshells.default = + with pkgs; + let + php = pkgs.php83.buildEnv { + extraConfig = '' + memory_limit = 128M + ''; + }; + + phpPackages = pkgs.php83Packages; + in + { + packages = [ + mariadb + php + phpPackages.composer + phpactor + pv + yamlfmt + ]; + }; + }; +} diff --git a/drupal/tools/nix/process-compose.nix b/drupal/tools/nix/process-compose.nix new file mode 100644 index 0000000..be1a94e --- /dev/null +++ b/drupal/tools/nix/process-compose.nix @@ -0,0 +1,40 @@ +{ inputs, ... }: + +{ + imports = [ inputs.process-compose.flakeModule ]; + + perSystem = + { pkgs, ... }: + let + databasePort = 3306; + httpPort = 8888; + in + { + process-compose."default" = { + imports = [ + inputs.services.processComposeModules.default + ]; + + services = { + mysql."mysql" = { + enable = true; + + initialDatabases = [ + { name = "drupal-lab"; } + ]; + + settings.mysqld.port = toString databasePort; + }; + }; + + settings.processes.php = { + command = pkgs.writeShellApplication { + name = "drush-server"; + text = "vendor/bin/drush runserver ${toString httpPort}"; + }; + + depends_on."mysql".condition = "process_healthy"; + }; + }; + }; +} diff --git a/drupal/tools/nix/systems.nix b/drupal/tools/nix/systems.nix new file mode 100644 index 0000000..0a2a99c --- /dev/null +++ b/drupal/tools/nix/systems.nix @@ -0,0 +1,5 @@ +{ inputs, ... }: + +{ + systems = import inputs.systems; +} diff --git a/drupal/web/sites/default/settings.nix.php b/drupal/web/sites/default/settings.nix.php new file mode 100644 index 0000000..0f2ce0a --- /dev/null +++ b/drupal/web/sites/default/settings.nix.php @@ -0,0 +1,12 @@ + 'drupal-lab', + 'username' => 'root', + 'password' => '', + 'host' => '127.0.0.1', + 'port' => '3306', + 'driver' => 'mysql', + 'prefix' => '', + 'collation' => 'utf8mb4_general_ci', +];