Use comptime for fully declarative LV2 and Custom commands #14
1 changed files with 12 additions and 7 deletions
|
@ -26,10 +26,13 @@ pub const Runner = struct {
|
|||
/// If the runner is in REPL mode
|
||||
repl: bool = false,
|
||||
|
||||
args: [][]u8,
|
||||
|
||||
pub fn init(allocator: *std.mem.Allocator, repl: bool) Runner {
|
||||
return Runner{
|
||||
.allocator = allocator,
|
||||
.repl = repl,
|
||||
.args = std.process.argsAlloc(allocator) catch unreachable,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -41,7 +44,11 @@ pub const Runner = struct {
|
|||
|
||||
pub fn clone(self: *Runner) !Runner {
|
||||
var cloned_image = if (self.image) |image| try image.clone() else null;
|
||||
return Runner{ .allocator = self.allocator, .image = cloned_image };
|
||||
return Runner{
|
||||
.allocator = self.allocator,
|
||||
.image = cloned_image,
|
||||
.args = self.args,
|
||||
};
|
||||
}
|
||||
|
||||
fn resolveArg(self: *Runner, load_path: []const u8) ![]const u8 {
|
||||
|
@ -57,14 +64,12 @@ pub const Runner = struct {
|
|||
// ':0' should ALWAYS point to the image.
|
||||
if (self.repl) index += 3 else index += 2;
|
||||
|
||||
var args = try std.process.argsAlloc(self.allocator);
|
||||
defer std.process.argsFree(self.allocator, args);
|
||||
std.debug.warn("ARGS!! {} \n", .{args.len});
|
||||
for (args) |arg, idx| {
|
||||
std.debug.warn("ARGS!! {} \n", .{self.args.len});
|
||||
for (self.args) |arg, idx| {
|
||||
std.debug.warn("arg{} = {}\n", .{ idx, arg });
|
||||
}
|
||||
std.debug.warn("fetch arg idx={}, val={}\n", .{ index, args[index] });
|
||||
return args[index];
|
||||
std.debug.warn("fetch arg idx={}, val={}\n", .{ index, self.args[index] });
|
||||
return self.args[index];
|
||||
} else {
|
||||
return load_path;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue