aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/xmake.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenserver/xmake.lua')
-rw-r--r--src/zenserver/xmake.lua28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/zenserver/xmake.lua b/src/zenserver/xmake.lua
index c42f305ee..a3d7aa124 100644
--- a/src/zenserver/xmake.lua
+++ b/src/zenserver/xmake.lua
@@ -68,3 +68,31 @@ target("zenserver")
-- line below forces breakpad_client to be to the right of sentry_native
add_syslinks("breakpad_client")
end
+
+ -- to work around some unfortunate Ctrl-C behaviour on Linux/Mac due to
+ -- our use of setsid() at startup we pass in `--no-detach` to zenserver
+ -- ensure that it recieves signals when the user requests termination
+ on_run(function(target)
+ -- the following is roughly cribbed from xmake/actions/run/xmake.lua
+ -- it would be nicer if we had the option of amending the arguments
+ -- via before_run for instance, but I can't figure out a way to do that
+ import("core.base.option")
+
+ -- get the run directory of target
+ local rundir = target:rundir()
+
+ -- get the absolute target file path
+ local targetfile = path.absolute(target:targetfile())
+
+ -- get run arguments
+ local args = table.wrap(option.get("arguments") or target:get("runargs"))
+
+ table.insert(args, "--detach=false")
+
+ -- debugging?
+ if option.get("debug") then
+ debugger.run(targetfile, args, {curdir = rundir})
+ else
+ os.execv(targetfile, args, {curdir = rundir, detach = option.get("detach")})
+ end
+ end)