mirror of
https://codeberg.org/ziglings/exercises.git
synced 2026-07-28 18:25:16 +00:00
added absolute path to exercises
This commit is contained in:
@@ -81,6 +81,7 @@ pub fn build(b: *Build) !void {
|
|||||||
const run = b.addRunArtifact(elrond);
|
const run = b.addRunArtifact(elrond);
|
||||||
run.addArg(b.fmt("--zig={s}", .{b.graph.zig_exe}));
|
run.addArg(b.fmt("--zig={s}", .{b.graph.zig_exe}));
|
||||||
run.addArg(b.fmt("--work-path={s}", .{work_path}));
|
run.addArg(b.fmt("--work-path={s}", .{work_path}));
|
||||||
|
run.addArg(b.fmt("--root-path={s}", .{b.root.root_dir.path.?}));
|
||||||
|
|
||||||
if (exno) |n| {
|
if (exno) |n| {
|
||||||
run.addArg(b.fmt("--only={d}", .{n}));
|
run.addArg(b.fmt("--only={d}", .{n}));
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ const Context = struct {
|
|||||||
arena: std.mem.Allocator,
|
arena: std.mem.Allocator,
|
||||||
zig_exe: []const u8,
|
zig_exe: []const u8,
|
||||||
work_path: []const u8,
|
work_path: []const u8,
|
||||||
|
root_path: []const u8,
|
||||||
};
|
};
|
||||||
|
|
||||||
const Error = error{Failed};
|
const Error = error{Failed};
|
||||||
@@ -158,6 +159,7 @@ pub fn main(init: std.process.Init) !void {
|
|||||||
|
|
||||||
var zig_exe: []const u8 = "zig";
|
var zig_exe: []const u8 = "zig";
|
||||||
var work_path: []const u8 = "exercises";
|
var work_path: []const u8 = "exercises";
|
||||||
|
var root_path: []const u8 = "";
|
||||||
var mode: Mode = .normal;
|
var mode: Mode = .normal;
|
||||||
var only_n: ?usize = null;
|
var only_n: ?usize = null;
|
||||||
var start_n: ?usize = null;
|
var start_n: ?usize = null;
|
||||||
@@ -170,6 +172,8 @@ pub fn main(init: std.process.Init) !void {
|
|||||||
zig_exe = v;
|
zig_exe = v;
|
||||||
} else if (cutPrefix(u8, arg, "--work-path=")) |v| {
|
} else if (cutPrefix(u8, arg, "--work-path=")) |v| {
|
||||||
work_path = v;
|
work_path = v;
|
||||||
|
} else if (cutPrefix(u8, arg, "--root-path=")) |v| {
|
||||||
|
root_path = v;
|
||||||
} else if (cutPrefix(u8, arg, "--only=")) |v| {
|
} else if (cutPrefix(u8, arg, "--only=")) |v| {
|
||||||
only_n = std.fmt.parseInt(usize, v, 10) catch {
|
only_n = std.fmt.parseInt(usize, v, 10) catch {
|
||||||
print("invalid --only value: {s}\n", .{v});
|
print("invalid --only value: {s}\n", .{v});
|
||||||
@@ -197,6 +201,7 @@ pub fn main(init: std.process.Init) !void {
|
|||||||
.arena = arena,
|
.arena = arena,
|
||||||
.zig_exe = zig_exe,
|
.zig_exe = zig_exe,
|
||||||
.work_path = work_path,
|
.work_path = work_path,
|
||||||
|
.root_path = root_path,
|
||||||
};
|
};
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
@@ -310,7 +315,7 @@ fn runExe(ctx: Context, ex: Exercise) !void {
|
|||||||
const arena = ctx.arena;
|
const arena = ctx.arena;
|
||||||
print("Compiling {s}...\n", .{ex.main_file});
|
print("Compiling {s}...\n", .{ex.main_file});
|
||||||
|
|
||||||
const path = std.fs.path.join(arena, &.{ ctx.work_path, ex.main_file }) catch @panic("OOM");
|
const path = std.fs.path.join(arena, &.{ ctx.root_path, ctx.work_path, ex.main_file }) catch @panic("OOM");
|
||||||
|
|
||||||
var argv = std.ArrayList([]const u8).initCapacity(arena, 8) catch @panic("OOM");
|
var argv = std.ArrayList([]const u8).initCapacity(arena, 8) catch @panic("OOM");
|
||||||
argv.append(arena, ctx.zig_exe) catch @panic("OOM");
|
argv.append(arena, ctx.zig_exe) catch @panic("OOM");
|
||||||
|
|||||||
Reference in New Issue
Block a user