aboutsummaryrefslogtreecommitdiff
path: root/client/service
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-07-07 19:42:57 +0200
committermetamuffin <metamuffin@disroot.org>2025-07-07 19:42:57 +0200
commitc5e2de764bb1ce1d38726b80636c3fa45b06c05e (patch)
tree7606abe3b47d123abb9cafe9c1bb7920aa3d3c7f /client/service
parent9be9937f75c2711d5d7fd9759ed615397fff5c7f (diff)
downloadhurrycurry-c5e2de764bb1ce1d38726b80636c3fa45b06c05e.tar
hurrycurry-c5e2de764bb1ce1d38726b80636c3fa45b06c05e.tar.bz2
hurrycurry-c5e2de764bb1ce1d38726b80636c3fa45b06c05e.tar.zst
implement discover tool as service.gd class
Diffstat (limited to 'client/service')
-rw-r--r--client/service/discover.gd31
-rw-r--r--client/service/discover.gd.uid1
-rw-r--r--client/service/service.gd8
3 files changed, 37 insertions, 3 deletions
diff --git a/client/service/discover.gd b/client/service/discover.gd
new file mode 100644
index 00000000..43fe5f38
--- /dev/null
+++ b/client/service/discover.gd
@@ -0,0 +1,31 @@
+# Hurry Curry! - a game about cooking
+# Copyright 2025 metamuffin
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, version 3 of the License only.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+class_name DiscoverService
+extends Service
+
+func name():
+ return "Discover"
+
+func arguments():
+ return []
+
+func exe_path() -> String:
+ var path: String = Global.get_setting("online.discover_binary")
+ if path != "": return path
+ else: return "hurrycurry-discover"
+
+func test_port():
+ return 27033
diff --git a/client/service/discover.gd.uid b/client/service/discover.gd.uid
new file mode 100644
index 00000000..d7ce87a2
--- /dev/null
+++ b/client/service/discover.gd.uid
@@ -0,0 +1 @@
+uid://bppjsmlmnm33p
diff --git a/client/service/service.gd b/client/service/service.gd
index f19364c7..9695714f 100644
--- a/client/service/service.gd
+++ b/client/service/service.gd
@@ -56,6 +56,7 @@ func start():
if state != State.STOPPED and state != State.FAILED:
push_error(name() + " can't be started")
return
+ print(name() + ": Starting...")
state = State.STARTING
thread = Thread.new()
thread.start(_server_exec)
@@ -64,13 +65,14 @@ func stop():
if state != State.RUNNING:
push_error(name() + " can't be stopped")
return
+ print(name() + ": Stopping...")
OS.kill(pid)
func _test_server():
var output = []
- print(name() + ": Binary path is " + exe_path())
+ print(name() + ": Testing executable " + exe_path())
thread_result = OS.execute(exe_path(), ["-v"], output, true, false)
- print(output)
+ print(name() + ": Version = " + output[0].strip_edges())
sem.post()
func _server_exec():
@@ -118,5 +120,5 @@ func _process(_delta):
pid = null
func _exit_tree():
- if pid != null: OS.kill(pid)
+ if state == State.RUNNING: stop()
if thread != null: thread.wait_to_finish()