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',
+];