diff options
Diffstat (limited to 'src/zenserver/xmake.lua')
| -rw-r--r-- | src/zenserver/xmake.lua | 28 |
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) |