added process spawning

This commit is contained in:
Harrison DiAmbrosio 2025-10-24 23:43:11 -04:00
parent 23ef0049f7
commit 2e2cfeebae
5 changed files with 47 additions and 249 deletions

View file

@ -8,6 +8,7 @@ const gpa = std.heap.c_allocator;
pub var server: Server = undefined;
pub var lua: Lua = undefined;
pub var env_map: std.process.EnvMap = undefined;
pub fn main() !void {
wlr.log.init(.err, null);
@ -21,15 +22,16 @@ pub fn main() !void {
var buf: [11]u8 = undefined;
const socket = try server.wl_server.addSocketAuto(&buf);
env_map = try std.process.getEnvMap(gpa);
try env_map.put("WAYLAND_DISPLAY", socket);
if (std.os.argv.len >= 2) {
const cmd = std.mem.span(std.os.argv[1]);
var child = std.process.Child.init(&[_][]const u8{ "/bin/sh", "-c", cmd }, gpa);
var env_map = try std.process.getEnvMap(gpa);
defer env_map.deinit();
try env_map.put("WAYLAND_DISPLAY", socket);
child.env_map = &env_map;
try child.spawn();
}
defer env_map.deinit();
std.log.info("Starting backend", .{});
server.backend.start() catch |err| {