From 7aa93ba9764138da64299e61c653acc2ea61ba2d Mon Sep 17 00:00:00 2001
From: Jan Wennrich <jan.wennrich@pcsg.de>
Date: Fri, 24 May 2024 17:07:49 +0200
Subject: [PATCH] chore: add developer scripts to composer.json

---
 composer.json | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/composer.json b/composer.json
index 98b6c33..46d2b55 100644
--- a/composer.json
+++ b/composer.json
@@ -29,5 +29,47 @@
       "QUI\\ERP\\Discount\\": "src/QUI/ERP/Discount",
       "QUITests\\ERP\\Discount\\": "tests/QUITests/ERP/Discount"
     }
+  },
+  "scripts": {
+    "test": [
+      "@dev:lint",
+      "@dev:phpunit"
+    ],
+    "dev:phpunit": "./tools/phpunit",
+    "dev:lint": [
+      "@dev:lint:phpstan",
+      "@dev:lint:style"
+    ],
+    "dev:lint:phpstan": "./tools/phpstan",
+    "dev:lint:style": "./tools/phpcs",
+    "dev:lint:style:fix": "./tools/phpcbf",
+    "dev:init": [
+      "@dev:init:check-requirements",
+      "@dev:init:tools",
+      "@dev:init:git-hooks"
+    ],
+    "dev:init:check-requirements": [
+      "which composer > /dev/null || (echo 'Error: composer has to be globally installed'; exit 1)",
+      "which phive > /dev/null || (echo 'Error: PHIVE has to be globally installed'; exit 1)"
+    ],
+    "dev:init:tools": "phive install --temporary",
+    "dev:init:git-hooks": "./tools/captainhook install --only-enabled --force"
+  },
+  "scripts-aliases": {
+    "test": [
+      "dev:test"
+    ]
+  },
+  "scripts-descriptions": {
+    "test": "Runs linting, static analysis, and unit tests.",
+    "dev:phpunit": "Run PHPUnit test suites",
+    "dev:lint": "Run PHPStan and code style check",
+    "dev:lint:phpstan": "Run PHPStan",
+    "dev:lint:style": "Run code style check (PHP_CodeSniffer)",
+    "dev:lint:style:fix": "Try to fix code style errors automatically",
+    "dev:init": "Initialize the developer tooling (tools and git hooks)",
+    "dev:init:check-requirements": "Check if the necessary requirements are met",
+    "dev:init:tools": "Install all developer tools (requires PHIVE)",
+    "dev:init:git-hooks": "Install all git hooks (may require tools to be installed)"
   }
 }
-- 
GitLab