#!/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 <command> ...\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)