#!/usr/bin/lua local GROUP = 'gluon-mesh-vpn' local grp = require 'posix.grp' local unistd = require 'posix.unistd' if #arg < 1 then io.stderr:write('Usage: gluon-wan ...\n') os.exit(1) end local g = grp.getgrnam(GROUP) if not g then io.stderr:write(string.format("gluon-wan: unable to find group '%s'\n", GROUP)) os.exit(1) end local ok, err = unistd.setpid('g', g.gr_gid) if ok ~= 0 then io.stderr:write(string.format("gluon-wan: unable to change to group: %s\n", err)) os.exit(1) end arg[0] = arg[1] table.remove(arg, 1) print(arg[0], unpack(arg)) ok, err = unistd.execp(arg[0], arg) io.stderr:write(string.format("gluon-wan: exec failed: %s\n", err)) os.exit(1)