Commit Graph

284 Commits

Author SHA1 Message Date
Yehonal
599d206584 feat(MenuSystem): Implement unified menu system for AzerothCore management (#22786) 2025-09-04 00:03:55 +02:00
Yehonal
5a79a4edce Feat/refactoring-module-menu (#22733) 2025-08-30 23:44:07 +02:00
Yehonal
de98f42411 feat(Service Manager): add service registry custom dir and restore functionality (#22589)
This pull request introduces significant enhancements to the service management system by adding a service registry with features like automatic tracking, reboot persistence, and restoration of missing services. 

The goal of this PR is to allow the user to store the service configuration files into an arbitrary directory, in this way they can be easily tracked, versioned, and replicated across different environments

It also includes a migration script to transition from the legacy service configuration format to the new registry-based system. Below is a summary of the most important changes:

### Service Registry and Management Enhancements:
1. **Service Registry Integration**:
   - Added a comprehensive service registry system to track all created services, enabling features like cross-reboot persistence and restoration of missing services (`apps/startup-scripts/src/service-manager.sh`). [[1]](diffhunk://#diff-31edfed7f73d0647a5fc96ce74c249e025e884cd1fe06621cb78eb4a381464f9R41-R229) [[2]](diffhunk://#diff-31edfed7f73d0647a5fc96ce74c249e025e884cd1fe06621cb78eb4a381464f9R273)
   - Introduced commands for managing the registry, such as `restore` for recreating missing services and `list` for viewing registered services. [[1]](diffhunk://#diff-31edfed7f73d0647a5fc96ce74c249e025e884cd1fe06621cb78eb4a381464f9R273) [[2]](diffhunk://#diff-31edfed7f73d0647a5fc96ce74c249e025e884cd1fe06621cb78eb4a381464f9R332-R334) [[3]](diffhunk://#diff-31edfed7f73d0647a5fc96ce74c249e025e884cd1fe06621cb78eb4a381464f9R346-L172)

2. **PM2 Persistence**:
   - Enhanced PM2 integration to automatically configure startup persistence across reboots using `pm2 startup` and `pm2 save` after service creation.

### Migration and Compatibility:
3. **Migration Script**:
   - Added a `migrate-registry.sh` script to convert legacy service configurations into the new registry format. It ensures compatibility while preserving existing service information (`apps/startup-scripts/src/migrate-registry.sh`).

### Documentation Updates:
4. **Updated README**:
   - Expanded documentation in `README.md` to explain the new service registry features, including usage examples, custom configuration directories, and migration instructions. [[1]](diffhunk://#diff-0917b2888cc9b16539173f318b77773d08f7bf360579b68b9710a96ca2bcbb64L387-R468) [[2]](diffhunk://#diff-0917b2888cc9b16539173f318b77773d08f7bf360579b68b9710a96ca2bcbb64R613-R626)

### Configuration Improvements:
5. **Custom Configuration Directories**:
   - Added support for overriding the default configuration directory for service registry and files using the `AC_SERVICE_CONFIG_DIR` environment variable. [[1]](diffhunk://#diff-31edfed7f73d0647a5fc96ce74c249e025e884cd1fe06621cb78eb4a381464f9L14-R15) [[2]](diffhunk://#diff-31edfed7f73d0647a5fc96ce74c249e025e884cd1fe06621cb78eb4a381464f9R346-L172)

These changes significantly improve the usability, reliability, and maintainability of the service management system, especially for setups requiring persistence and multi-project configurations.
2025-08-25 20:25:17 +02:00
sudlud
2a73b89f6a fix(CI/modules-build): disable archived / outdated module mod-war-effort (#22722) 2025-08-23 16:05:17 -03:00
sudlud
a276f25d2f fix(CI/windows): bump openssl to 3.5.2 (#22628) 2025-08-06 13:21:12 +02:00
j-sax
cee5313554 fix(apps/docker): put TZ ARG after FROM to be correctly applied (#22600)
Co-authored-by: Jesper Saxtorph <gitforgot.sax@manware.dk>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-06 12:08:47 +02:00
NoxMax
c7351be94a fix(bash): Exit simple-restarter script if shutdown is requested (#22617) 2025-08-06 08:48:48 +02:00
Yehonal
dbee211506 fix(bash/starter): enhance interactive mode handling (#22516)
This pull request updates the startup script in `apps/startup-scripts/src/starter` to improve handling of interactive and non-interactive modes, particularly when running under different session managers. 

### Improvements to interactive and non-interactive mode handling:

* Updated the condition to check if the application should run interactively by combining `AC_LAUNCHED_BY_PM2` and `AC_DISABLE_INTERACTIVE` environment variables. This ensures more accurate handling of interactive mode.


Fixes: https://github.com/azerothcore/azerothcore-wotlk/issues/22507
2025-07-27 13:50:20 +02:00
Kitzunu
129434bb42 feat(DB): Release ACDB 13.0.0 (#22508) 2025-07-19 13:16:46 +02:00
Ryan Turner
b90638fdf3 feat(Codestyle/SQL): Ensure InnoDB is used as DB Engine (#22457) 2025-07-11 15:52:16 +02:00
Yehonal
ed8139b82a feat(tests): add BATS test parallel conf and integration tests for compiler module (#22421) 2025-07-06 17:03:51 +02:00
Yehonal
9fcacf7ea7 feat: improve session management and PM2 support in startup scripts (#22420)
New feature to manage service restart policies and refactors crash logging paths for better flexibility and clarity. The most significant changes include adding support for configurable restart policies (`on-failure` and `always`), updating documentation to reflect these changes, and improving crash path handling in multiple scripts.
2025-07-06 12:00:38 +02:00
Yehonal
9a837ee1f7 fix(bash): Improve session management and GDB handling in service scripts (#22418)
This pull request introduces several enhancements and fixes to the startup scripts for AzerothCore, focusing on improving service management, interactive mode handling, and script execution. The most important changes include adding support for non-interactive mode, enhancing systemd integration, and refactoring the starter script to handle binary paths and files more robustly.

### Enhancements to Service Management:
* **Non-Interactive Mode:** Added `AC_DISABLE_INTERACTIVE` environment variable to disable interactive prompts for services running without session managers (e.g., systemd/pm2). This prevents hanging during non-interactive execution. (`apps/startup-scripts/src/run-engine`, `apps/startup-scripts/src/service-manager.sh`) [[1]](diffhunk://#diff-1792abab64da981c71221890876ce832aab405f670f320f75b73b8788b1a4174R336-R349) [[2]](diffhunk://#diff-31edfed7f73d0647a5fc96ce74c249e025e884cd1fe06621cb78eb4a381464f9R724-R727)
* **Enhanced Systemd Integration:** Services using session managers like tmux/screen are automatically configured with `Type=forking` and appropriate `ExecStop` commands to terminate sessions gracefully. (`apps/startup-scripts/src/service-manager.sh`) [[1]](diffhunk://#diff-31edfed7f73d0647a5fc96ce74c249e025e884cd1fe06621cb78eb4a381464f9R401-R425) [[2]](diffhunk://#diff-31edfed7f73d0647a5fc96ce74c249e025e884cd1fe06621cb78eb4a381464f9R567-R578)

### Improvements to Script Execution:
* **Starter Script Refactor:** Updated the starter script to require both binary path and file name as parameters, improving clarity and error handling. (`apps/startup-scripts/src/starter`) [[1]](diffhunk://#diff-e92f132163ec1e49dc625eac9107c6841ae14e416aa35adec787dca5031dc631L6-R16) [[2]](diffhunk://#diff-e92f132163ec1e49dc625eac9107c6841ae14e416aa35adec787dca5031dc631L26-R44)
* **Temporary GDB File Management:** Enhanced handling of temporary GDB configuration files, ensuring proper cleanup after execution. (`apps/startup-scripts/src/starter`) [[1]](diffhunk://#diff-e92f132163ec1e49dc625eac9107c6841ae14e416aa35adec787dca5031dc631R68-R70) [[2]](diffhunk://#diff-e92f132163ec1e49dc625eac9107c6841ae14e416aa35adec787dca5031dc631R92-R141)

### Updates to Tests:
* **Test Adjustments:** Modified test cases to reflect the updated starter script parameter requirements and error messages. (`apps/startup-scripts/test/test_startup_scripts.bats`) [[1]](diffhunk://#diff-febbaeb294e50bdba0511ecad5d44b0c3f11ae92c79dd19dbd5f61d41a654278L26-R26) [[2]](diffhunk://#diff-febbaeb294e50bdba0511ecad5d44b0c3f11ae92c79dd19dbd5f61d41a654278L41-R49)
2025-07-05 23:02:04 +02:00
Yehonal
161898b7e6 fix(installer/windows): update OpenSSL version to 3.5.1 to fix gh build errors (#22416)
Chocolatey on windows cannot download openssl 3.4.1 since the source has been removed.

3.5.1 is available instead. However, this must be tested

This https://community.chocolatey.org/packages/openssl/3.4.1 is pointing to this: https://slproweb.com/download/Win32OpenSSL-3_4_1.exe that doesn't exist anymore and has been replaced by the 3.4.2, but chocolatey doesn't have this version yet
2025-07-03 20:31:18 +02:00
Yehonal
04547d90b3 fix(CI): update build job to support multiple Ubuntu versions (#22413) 2025-07-03 11:03:16 +02:00
Yehonal
e1b2689c3a feat(bash): startup-scripts reworked + bash scripts workflow integration (#22401) 2025-07-01 15:35:54 +02:00
Kitzunu
f4e049f227 refactor(db-scripts): replace PowerShell database tools with Bash scripts and update documentation (#22372)
* closes https://github.com/azerothcore/azerothcore-wotlk/issues/4343

This pull request replaces the PowerShell implementation of the AzerothCore database export and squash tools with Bash scripts, streamlining the process and improving compatibility. It also updates the documentation to reflect these changes. The most important changes include the creation of new Bash scripts for exporting databases, squashing databases, and updating versions, as well as the removal of the previous PowerShell script and its associated documentation.

### Script Replacement and Enhancements:
* [`apps/DatabaseSquash/DatabaseExporter/DatabaseExporter.sh`](diffhunk://#diff-af0bd252ac095aaad91b842c75b60a689792e6dc9ce88f5e2e4b6f68acf84dcaR1-R69): Introduced a Bash script to replace the PowerShell implementation for exporting database tables, with added features such as formatted SQL output and dynamic directory creation.
* [`apps/DatabaseSquash/DatabaseSquash.sh`](diffhunk://#diff-79ff4f749c045a7d91e9b43aefb5d6fbebdc5fdfb430fbcba329e4d96d71a4fbR1-R52): Added a Bash script to automate the database squash process, integrating the version updater and database exporter tools.
* [`apps/DatabaseSquash/VersionUpdater/VersionUpdater.sh`](diffhunk://#diff-3abc69c645cb80aff30824739e317c9e847e743eeab15ab4825951d10179b265R1-R84): Created a Bash script for automatically updating the version in `acore.json` and generating SQL update files with proper versioning.

### Documentation Updates:
* [`apps/DatabaseSquash/DatabaseExporter/databaseexporter.md`](diffhunk://#diff-b2b291286f2b900a022474f00754ebfe78410780c010d46752335a372d688aefR1-R16): Rewritten documentation to reflect the usage of the new Bash script for database exporting.
* [`apps/DatabaseSquash/VersionUpdater/versionupdater.md`](diffhunk://#diff-f12e21f8a404957c90d9120cf9df0724ff27a7efdb5de0798d974079cfe8adadR1-R10): Added documentation for the new version updater tool, explaining its functionality and usage.
* [`apps/DatabaseSquash/databasesquash.md`](diffhunk://#diff-4a559f6e7404b529714bac65ad22744feb7b9f88343864a20e0a46974233767eR1-R11): Documented the overall database squash tool, detailing its integration of the version updater and database exporter scripts.

### Removal of Legacy Code:
* [`apps/DatabaseExporter/DatabaseExporter.ps1`](diffhunk://#diff-2b4e49f704d88a372b5160c7278839668c81dbecaf52a4edd327873e30b9ae70L1-L234): Removed the PowerShell script for database exporting, along with its associated functionality and settings.
* [`apps/DatabaseExporter/databaseexporter.md`](diffhunk://#diff-0618d62def0d611be6e0d4fc524df6f702f493cb87870d9382402aaf52f484e8L1-L85): Deleted outdated documentation for the PowerShell-based database exporter tool.
2025-06-28 16:17:48 +02:00
Kitzunu
ca8a2a5f58 fix(CI/Codestyle): Add directory check to SQL codestyle script (#22376) 2025-06-28 15:06:39 +02:00
Yehonal
03df002471 fix(bash): repository initialization bugs and update configurations (#22311) 2025-06-17 18:30:51 +01:00
Jelle Meeus
3e20d6edf8 feat(apps/extractor): add extractor for non windows (#22123) 2025-05-14 23:29:43 +01:00
sudlud
e8ba158c62 fix(CI/modules-build): enable mod-antifarming (#21654) 2025-03-05 13:10:58 +01:00
sudlud
ba37b3d130 feat(CI/modules-build): add all current azerothcore modules (#21624) 2025-03-03 18:46:03 +01:00
Kitzunu
9e4c74bab1 fix(CI/Codestyle): Minor typo in insert_delete_safety_check (#21639) 2025-03-02 18:48:42 +01:00
Kitzunu
6786cb19c3 fix(CI/Codestyle): Imrpove semicolon check and general improvements (#21632) 2025-03-02 18:02:09 +01:00
Kitzunu
ee23fdca3d fix(CI/Codestyle): Escape all MySQL keywords and skip /* comments (#21631) 2025-03-02 16:49:18 +01:00
Kitzunu
cd8761796f fix(CI/Codestyle): skip SQL keyword 'NOT' (#21591) 2025-02-24 06:16:20 +01:00
Andrew
f6c4164765 chore(CI): Add mod-costumes (#21548) 2025-02-20 06:29:46 +01:00
Andrew
862690ecc0 chore(CI): Add mod-arena-3v3-solo-queue.git (#21530)
Co-authored-by: sudlud <sudlud@users.noreply.github.com>
2025-02-19 13:38:59 +01:00
demetrzz
75752880e2 fix(Apps/Codestyle) corrected wrong text in the sql codestyle check (#21466)
Co-authored-by: pavel_k <pavel_k@mail.com>
2025-02-15 22:15:37 +01:00
Kitzunu
19847395eb fix(CI/Windows): Bump openssl version (#21458) 2025-02-15 13:12:13 +01:00
Kitzunu
787b4e4efe fix(CI/Codestyle): correct double semicolon check (#21388) 2025-02-10 20:24:28 +01:00
Kitzunu
31529db282 fix(CI/Codestyle): Final fixes to backtick check (#21361) 2025-02-08 11:34:38 +01:00
Kitzunu
2c561f0433 fix(CI): typo (#21347) 2025-02-07 09:51:25 +01:00
Kitzunu
306f41a2d8 fix(CI/Codestyle): ignore lines starting with @ (#21346) 2025-02-07 06:52:38 +01:00
Kitzunu
668864556b fix(CI/Codestyle): Ignore comments for backtick check (#21343) 2025-02-07 00:09:55 +01:00
Kitzunu
f46fea0ac9 fix(CI/Codestyle): Backtick check SET, quote and REPLACE case (#21333) 2025-02-05 17:25:34 +01:00
sudlud
02a903b16f fix(CI/Windows): fix windows build (#21322) 2025-02-03 22:01:14 +01:00
Kitzunu
5d9e45ab9b feat(CI/Codestyle): backtick check for sql (#21321) 2025-02-03 21:03:21 +01:00
Kitzunu
9e9a2fe5e3 refactor(Core/ObjectMgr): Change GetAcoreString from char const* to s… (#21213)
...ring
2025-02-01 22:46:42 +01:00
Kitzunu
137337601d fix(DB/Misc): Bad delete in update file (#21307)
Co-authored-by: Andrew <47818697+Nyeriah@users.noreply.github.com>
2025-02-01 16:48:24 +01:00
Jelle Meeus
b47ec3b5c8 fix(Apps/Codestyle): ignore comments for some checks (#21268) 2025-01-25 19:58:01 +01:00
Grimdhex
7725610ff3 chore(Apps/Codestyle): add new checks for SQL files (#21026) 2025-01-21 10:44:39 +01:00
Jelle Meeus
5bc512f75c chore(Docker): Update dev container to ubuntu24.04 (#21044) 2025-01-19 12:46:28 +01:00
Grimdhex
ffae375f73 fix(Apps/Codestyle): rewrite semi-colon check (#21027) 2024-12-24 12:39:00 +01:00
Kitzunu
d5fac96a20 refactor(CI/Codestyle): Move the SQL check to python (#21002) 2024-12-22 16:50:32 +01:00
Kitzunu
2c20c9463a feat(CI/Codestyle): Check for tabs (#20998) 2024-12-22 00:43:23 +01:00
Kitzunu
d2b88bdc1e feat(CI/Codestyle); Check for double semicolons (#20996) 2024-12-21 22:19:49 +01:00
Kitzunu
ceefd89a06 feat(CI/Codestyle): check for curly brackets before/after if/else statements (#20977)
* feat(CI/Codestyle): check for braces after if/else statements

* right need to edit a cpp file to trigger cpp check

* Revert "right need to edit a cpp file to trigger cpp check"

This reverts commit 2e34d8c52f35216549107a3476e79e79ea2ae077.

* fix codestyle in cpp

* Update oculus.cpp

* Update codestyle.py

* Update codestyle.py

* Update codestyle.py

* Update codestyle.py
2024-12-19 21:14:58 +01:00
sudlud
0a454b08fc fix(apps/DatabaseExporter): fix utf-8 encoding for sql export (#20951) 2024-12-18 10:33:53 +01:00
Kitzunu
3a20433827 feat(DB): New DB exporter and versioning tools for DB squashes (#20920) 2024-12-16 16:13:05 +01:00