diff options
Diffstat (limited to 'client/service')
-rw-r--r-- | client/service/discover.gd | 31 | ||||
-rw-r--r-- | client/service/discover.gd.uid | 1 | ||||
-rw-r--r-- | client/service/service.gd | 8 |
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() |