Skip to content

Commit 45249ff

Browse files
committed
refactor: rename mc_srv_manager -> modular_server_manager and decouple UI/client
1 parent aab32ea commit 45249ff

7 files changed

Lines changed: 38 additions & 106 deletions

File tree

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ __pycache__/
33
*.egg-info/
44
dist/
55
build/
6-
mc_srv_manager/
6+
modular_server_manager/
77
*.log
88
*.md
99

makefile

Lines changed: 15 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,21 @@
1-
.PHONY: all build clean server tests # client
1+
.PHONY: all build clean server tests
22

33
all: build
44

55
TEMP_DIR = build
66

7-
# WEB_SRC_TS = $(wildcard client/src/**/*.ts)
8-
# WEB_SRC_HTML = $(wildcard client/src/**/*.template.html)
9-
# WEB_SRC_SASS = $(wildcard client/src/**/*.scss)
10-
# WEB_ASSETS = $(wildcard client/src/assets/*)
11-
12-
# WEB_DIST_JS = $(patsubst client/src/%.ts,mc_srv_manager/client/%.js,$(WEB_SRC_TS))
13-
# WEB_DIST_HTML = $(patsubst client/src/%.template.html,mc_srv_manager/client/%.html,$(WEB_SRC_HTML))
14-
# WEB_DIST_CSS = $(patsubst client/src/%.scss,mc_srv_manager/client/%.css,$(WEB_SRC_SASS))
15-
# WEB_DIST_ASSETS = $(patsubst client/src/assets/%,mc_srv_manager/client/assets/%,$(WEB_ASSETS))
16-
# WEB_DIST = $(WEB_DIST_JS) $(WEB_DIST_HTML) $(WEB_DIST_CSS) $(WEB_DIST_ASSETS)
17-
18-
# WEB_DEV_JS = $(patsubst client/src/%.ts,client/dist/%.js,$(WEB_SRC_TS))
19-
# WEB_DEV_HTML = $(patsubst client/src/%.template.html,client/dist/%.html,$(WEB_SRC_HTML))
20-
# WEB_DEV_CSS = $(patsubst client/src/%.scss,client/dist/%.css,$(WEB_SRC_SASS))
21-
# WEB_DEV_ASSETS = $(patsubst client/src/assets/%,client/dist/assets/%,$(WEB_ASSETS))
227
WEB_DEV_DIST = $(WEB_DEV_JS) $(WEB_DEV_HTML) $(WEB_DEV_CSS) $(WEB_DEV_ASSETS)
238

249

2510
SRV_SRC = $(shell find server/src -type f -name "*.py") server/src/minecraft/properties.xml server/src/bus/events.xml server/src/events_descriptions.json
26-
SRV_DIST = $(patsubst server/src/%,mc_srv_manager/%,$(SRV_SRC))
11+
SRV_DIST = $(patsubst server/src/%,modular_server_manager/%,$(SRV_SRC))
2712

2813
CONFIG_SRC = $(wildcard server/src/config.json)
29-
CONFIG_DIST = $(patsubst server/src/%,mc_srv_manager/%,$(CONFIG_SRC))
14+
CONFIG_DIST = $(patsubst server/src/%,modular_server_manager/%,$(CONFIG_SRC))
3015

3116
TESTS_PY = $(wildcard tests/*.py) $(wildcard tests/**/*.py)
3217

3318

34-
# HTML TEMPLATES DEPENDENCIES
35-
# mc_srv_manager/client/account/index.html: client/src/metadata.template client/src/header/header.template
36-
# mc_srv_manager/client/dashboard/index.html: client/src/metadata.template client/src/header/header.template
37-
# mc_srv_manager/client/server/index.html: client/src/metadata.template client/src/header/header.template
38-
# mc_srv_manager/client/login/index.html: client/src/metadata.template client/src/header/header.template
39-
40-
41-
4219
PYPROJECT = pyproject.toml
4320

4421
PYTHON_PATH = $(shell if [ -d env/bin ]; then echo "env/bin/"; elif [ -d env/Scripts ]; then echo "env/Scripts/"; else echo ""; fi)
@@ -47,18 +24,17 @@ PYTHON = $(PYTHON_PATH)python
4724

4825
EXECUTABLE_EXTENSION = $(shell if [ -d env/bin ]; then echo ""; elif [ -d env/Scripts ]; then echo ".exe"; else echo ""; fi)
4926

50-
APP_EXECUTABLE = $(PYTHON_PATH)mc-srv-manager$(EXECUTABLE_EXTENSION)
27+
APP_EXECUTABLE = $(PYTHON_PATH)modular-server-manager$(EXECUTABLE_EXTENSION)
5128

5229
# if not defined, get the version from git
5330
VERSION ?= $(shell $(PYTHON) get_version.py)
5431

5532
# if version is in the form of x.y.z-dev-aaaa or x.y.z-dev+aaaa, set it to x.y.z-dev
56-
# VERSION_STR = $(shell echo $(VERSION) | sed 's/-dev-[a-z0-9]*\/\/')
5733
VERSION_STR = $(shell echo $(VERSION) | sed "s/-dev-[a-z0-9]*//; s/-dev+.*//")
5834

5935

60-
WHEEL = mc_srv_manager-$(VERSION_STR)-py3-none-any.whl
61-
ARCHIVE = mc_srv_manager-$(VERSION_STR).tar.gz
36+
WHEEL = modular_server_manager-$(VERSION_STR)-py3-none-any.whl
37+
ARCHIVE = modular_server_manager-$(VERSION_STR).tar.gz
6238

6339
$(PYTHON_LIB)/build:
6440
$(PYTHON_PATH)pip install build
@@ -67,53 +43,33 @@ $(PYTHON_LIB)/build:
6743
print-%:
6844
@echo $* = $($*)
6945

70-
# mc_srv_manager/client/%.html: client/src/%.template.html
71-
# @mkdir -p $(@D)
72-
# @echo "Compiling $< to $@"
73-
# @$(PYTHON) html_template.py client/src $(subst .template.html,,$(subst client/src/,,$<)) -o $@
74-
75-
# mc_srv_manager/client/%.js: client/src/%.ts
76-
# @mkdir -p $(dir $@)
77-
# @echo "Compiling $< to $@"
78-
# @tsc --outDir mc_srv_manager/client $< --module es6 --target es6 --strict
79-
80-
# mc_srv_manager/client/%.css: client/src/%.scss
81-
# @mkdir -p $(@D)
82-
# @echo "Compiling $< to $@"
83-
# @sass $< $@ --no-source-map
84-
85-
mc_srv_manager/%.py: server/src/%.py
46+
modular_server_manager/%.py: server/src/%.py
8647
@mkdir -p $(@D)
8748
@echo "Copying $< to $@"
8849
@cp $< $@
8950

90-
mc_srv_manager/%.json: server/src/%.json
51+
modular_server_manager/%.json: server/src/%.json
9152
@mkdir -p $(@D)
9253
@echo "Copying $< to $@"
9354
@cp $< $@
9455

95-
# mc_srv_manager/client/assets/%: client/src/assets/%
96-
# @mkdir -p $(@D)
97-
# @echo "Copying $< to $@"
98-
# @cp $< $@
99-
100-
mc_srv_manager/%: server/src/%
56+
modular_server_manager/%: server/src/%
10157
@mkdir -p $(@D)
10258
@echo "Copying $< to $@"
10359
@cp $< $@
10460

10561
dist:
10662
mkdir -p dist
10763

108-
dist/$(WHEEL): $(SRV_DIST) $(PYPROJECT) $(CONFIG_DIST) $(PYTHON_LIB)/build dist # $(WEB_DIST)
64+
dist/$(WHEEL): $(SRV_DIST) $(PYPROJECT) $(CONFIG_DIST) $(PYTHON_LIB)/build dist
10965
mkdir -p $(TEMP_DIR)
11066
$(PYTHON) build_package.py --outdir $(TEMP_DIR) --wheel --version $(VERSION_STR)
11167
mkdir -p dist
11268
mv $(TEMP_DIR)/*.whl dist/$(WHEEL)
11369
rm -rf $(TEMP_DIR)
11470
@echo "Building wheel package complete."
11571

116-
dist/$(ARCHIVE): $(SRV_DIST) $(PYPROJECT) $(CONFIG_DIST) $(PYTHON_LIB)/build dist # $(WEB_DIST)
72+
dist/$(ARCHIVE): $(SRV_DIST) $(PYPROJECT) $(CONFIG_DIST) $(PYTHON_LIB)/build dist
11773
mkdir -p $(TEMP_DIR)
11874
$(PYTHON) build_package.py --outdir $(TEMP_DIR) --sdist --version $(VERSION_STR)
11975
mkdir -p dist
@@ -128,13 +84,11 @@ $(APP_EXECUTABLE) : dist/$(WHEEL)
12884

12985
build: dist/$(WHEEL) dist/$(ARCHIVE)
13086

131-
# client: $(WEB_DIST)
132-
13387
server: $(SRV_DIST) $(CONFIG_DIST)
13488

13589

13690

137-
test-report.xml: $(APP_EXECUTABLE) $(SRV_DIST) $(PYPROJECT) $(CONFIG_DIST) $(TESTS_PY) # $(WEB_DIST)
91+
test-report.xml: $(APP_EXECUTABLE) $(SRV_DIST) $(PYPROJECT) $(CONFIG_DIST) $(TESTS_PY)
13892
$(PYTHON) -m pytest --junitxml=test-report.xml tests
13993

14094

@@ -152,10 +106,10 @@ tests: clean-tests test-report.xml
152106

153107

154108
clean:
155-
rm -rf mc_srv_manager
109+
rm -rf modular_server_manager
156110
rm -rf dist
157-
rm -rf $(PYTHON_LIB)/mc_srv_manager
158-
rm -rf $(PYTHON_LIB)/mc_srv_manager-*.dist-info
111+
rm -rf $(PYTHON_LIB)/modular_server_manager
112+
rm -rf $(PYTHON_LIB)/modular_server_manager-*.dist-info
159113
rm -rf $(APP_EXECUTABLE)
160114

161115
clean-tests:

pyproject.toml

Lines changed: 13 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,56 +9,38 @@ requires-python = ">=3.12"
99
dependencies = [
1010
"argon2-cffi==23.1.0",
1111
"beautifulsoup4==4.13.4",
12-
# "blinker==1.9.0",
1312
"bs4==0.0.2",
1413
"certifi==2025.4.26",
1514
"charset-normalizer==3.4.1",
16-
# "click==8.1.8",
1715
"distro==1.9.0",
18-
# "Flask==3.1.1",
1916
"gamuLogger>=3.2.4",
2017
"idna==3.10",
21-
# "itsdangerous==2.2.0",
22-
# "Jinja2==3.1.6",
23-
# "MarkupSafe==3.0.2",
2418
"requests>=2.32.4",
2519
"soupsieve==2.7",
2620
"typing_extensions==4.13.2",
2721
"urllib3==2.5.0",
28-
# "Werkzeug==3.1.3",
29-
# "dnspython==2.7.0",
30-
# "eventlet==0.40.3",
31-
# "greenlet==3.2.1",
32-
# "python-socketio==5.14.0",
3322
"cache @ https://github.com/T0ine34/python-sample/releases/download/1.1.6/cache-1.1.6-py3-none-any.whl",
3423
"config @ https://github.com/T0ine34/python-sample/releases/download/1.1.6/config-1.1.6-py3-none-any.whl",
35-
# "http_code @ https://github.com/T0ine34/python-sample/releases/download/1.1.6/http_code-1.1.6-py3-none-any.whl",
3624
"version @ https://github.com/T0ine34/python-sample/releases/download/1.1.6/version-1.1.6-py3-none-any.whl",
37-
# "singleton @ https://github.com/T0ine34/python-sample/releases/download/1.1.6/singleton-1.1.6-py3-none-any.whl"
3825
]
3926

4027
[project.scripts]
41-
mc-srv-manager = "mc_srv_manager.__main__:main"
42-
mc-srv-manager-event-decoder = "mc_srv_manager.decode_event:main"
43-
mc-srv-manager-doc-gen = "mc_srv_manager.gen_doc:main"
28+
modular-server-manager = "modular_server_manager.__main__:main"
29+
modular-server-manager-event-decoder = "modular_server_manager.decode_event:main"
30+
modular-server-manager-doc-gen = "modular_server_manager.gen_doc:main"
4431

4532
[tool.setuptools]
46-
packages = ["mc_srv_manager",
47-
"mc_srv_manager.bus",
48-
"mc_srv_manager.core",
49-
"mc_srv_manager.minecraft",
50-
"mc_srv_manager.minecraft.forge",
51-
"mc_srv_manager.minecraft.vanilla",
52-
"mc_srv_manager.user_interface",
53-
"mc_srv_manager.user_interface.database",
54-
"mc_srv_manager.user_interface.tk_window",
55-
"mc_srv_manager.user_interface.web_server",
56-
"mc_srv_manager.utils",
57-
# "mc_srv_manager.client",
58-
# "mc_srv_manager.client.assets"
33+
packages = ["modular_server_manager",
34+
"modular_server_manager.bus",
35+
"modular_server_manager.core",
36+
"modular_server_manager.minecraft",
37+
"modular_server_manager.minecraft.forge",
38+
"modular_server_manager.minecraft.vanilla",
39+
"modular_server_manager.user_interface",
40+
"modular_server_manager.user_interface.database",
41+
"modular_server_manager.utils",
5942
]
60-
package-data = { "mc_srv_manager" = [
61-
# "client/**",
43+
package-data = { "modular_server_manager" = [
6244
"config.json",
6345
"minecraft/properties.xml",
6446
"bus/events.xml",

server/src/user_interface/Base_interface.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class BaseInterface:
2121
It also provides methods to trigger events and handle callbacks.
2222
The list of callbacks is defined in the `callback_map` dictionary, which maps method names to events.
2323
"""
24+
2425
callback_map: dict[str, Event] = {
2526
"on_server_starting": Events["SERVER.STARTING"],
2627
"on_server_started": Events["SERVER.STARTED"],
@@ -39,7 +40,7 @@ class BaseInterface:
3940
"on_player_pardoned": Events["PLAYERS.PARDONED"]
4041
}
4142

42-
def __init__(self, bus_data : BusData, database_path: str):
43+
def __init__(self, bus_data : BusData, database_path: str, key: str):
4344
if hasattr(self, "_BaseInterface__bus"): # Avoid reinitializing the bus
4445
return
4546
self.__bus = Bus(bus_data)
Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
from typing import Dict
22

33
from .Base_interface import BaseInterface
4-
from .tk_window import TkWindow
5-
from .web_server import WebServer
64

7-
UserInterfaceModules : Dict[str, type[BaseInterface]] = {
8-
"web": WebServer,
9-
"tk": TkWindow
10-
}
5+
UserInterfaceModules : Dict[str, type['BaseInterface']] = {}

tests/bus_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
from gamuLogger import Levels, Logger
88
from version import Version
99

10-
from mc_srv_manager.bus import Bus, BusData, Events
11-
from mc_srv_manager.bus.bus_dispatcher import BusDispatcher
12-
from mc_srv_manager.minecraft.forge.web_interface import WebInterface
10+
from modular_server_manager.bus import Bus, BusData, Events
11+
from modular_server_manager.bus.bus_dispatcher import BusDispatcher
12+
from modular_server_manager.minecraft.forge.web_interface import WebInterface
1313

1414
# create a BusDispatcher, start it in a separate thread
1515
# then create some Bus instances, each one in a separate process

tests/integration/server_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def setup_and_teardown(self, request : pytest.FixtureRequest):
4848

4949

5050
server_process = subprocess.Popen(
51-
[sys.executable, "-m", "mc_srv_manager", "--module-level", "all:TRACE", "-c", config_file, "--log-file", f"{BASE_PATH}/temp/{name}.log:TRACE"],
51+
[sys.executable, "-m", "modular_server_manager", "--module-level", "all:TRACE", "-c", config_file, "--log-file", f"{BASE_PATH}/temp/{name}.log:TRACE"],
5252
stdout=sys.stdout,
5353
stderr=sys.stdout
5454
)
@@ -103,7 +103,7 @@ def setup_and_teardown(self, request : pytest.FixtureRequest):
103103
if os.path.exists(f"{BASE_PATH}/temp/server.db"):
104104
os.remove(f"{BASE_PATH}/temp/server.db")
105105

106-
server_process = subprocess.Popen([sys.executable, "-m", "mc_srv_manager", "--module-level", "all:TRACE", "-c", CONFIG_FILE, "--log-file", f"tests/end_to_end/temp/{name}.log:TRACE"])
106+
server_process = subprocess.Popen([sys.executable, "-m", "modular_server_manager", "--module-level", "all:TRACE", "-c", CONFIG_FILE, "--log-file", f"tests/end_to_end/temp/{name}.log:TRACE"])
107107
time.sleep(1) # Wait for the server to start
108108

109109
# create a test user
@@ -155,7 +155,7 @@ def setup_and_teardown(self, request : pytest.FixtureRequest):
155155
if os.path.exists(f"{BASE_PATH}/temp/server.db"):
156156
os.remove(f"{BASE_PATH}/temp/server.db")
157157

158-
server_process = subprocess.Popen([sys.executable, "-m", "mc_srv_manager", "--module-level", "all:TRACE", "-c", CONFIG_FILE, "--log-file", f"tests/end_to_end/temp/{name}.log:TRACE"])
158+
server_process = subprocess.Popen([sys.executable, "-m", "modular_server_manager", "--module-level", "all:TRACE", "-c", CONFIG_FILE, "--log-file", f"tests/end_to_end/temp/{name}.log:TRACE"])
159159
time.sleep(1)
160160
# Wait for the server to start
161161
# create a test user

0 commit comments

Comments
 (0)