tangled
alpha
login
or
join now
rockorager.dev
/
lsr
60
fork
atom
ls but with io_uring
60
fork
atom
overview
issues
9
pulls
1
pipelines
add version info
rockorager.dev
10 months ago
328284fb
9373c6b6
verified
This commit was signed with the committer's
known signature
.
rockorager.dev
SSH Key Fingerprint:
SHA256:qn/Fjy7CpbcogGEPB14Y53hLnQleZNFY9lkQnuudFLs=
+43
-1
3 changed files
expand all
collapse all
unified
split
build.zig
build.zig.zon
src
main.zig
+37
build.zig
···
1
const std = @import("std");
2
0
0
0
3
pub fn build(b: *std.Build) void {
4
const target = b.standardTargetOptions(.{});
5
const optimize = b.standardOptimizeOption(.{});
···
18
const zeit_mod = zeit_dep.module("zeit");
19
exe_mod.addImport("zeit", zeit_mod);
20
0
0
0
0
0
0
0
0
0
21
const exe = b.addExecutable(.{
22
.name = "lsr",
23
.root_module = exe_mod,
···
45
const test_step = b.step("test", "Run unit tests");
46
test_step.dependOn(&run_exe_unit_tests.step);
47
}
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
const std = @import("std");
2
3
+
/// Must be kept in sync with git tags
4
+
const version: std.SemanticVersion = .{ .major = 0, .minor = 0, .patch = 0 };
5
+
6
pub fn build(b: *std.Build) void {
7
const target = b.standardTargetOptions(.{});
8
const optimize = b.standardOptimizeOption(.{});
···
21
const zeit_mod = zeit_dep.module("zeit");
22
exe_mod.addImport("zeit", zeit_mod);
23
24
+
const opts = b.addOptions();
25
+
const version_string = genVersion(b) catch |err| {
26
+
std.debug.print("{}", .{err});
27
+
@compileError("couldn't get version");
28
+
};
29
+
opts.addOption([]const u8, "version", version_string);
30
+
31
+
exe_mod.addOptions("build_options", opts);
32
+
33
const exe = b.addExecutable(.{
34
.name = "lsr",
35
.root_module = exe_mod,
···
57
const test_step = b.step("test", "Run unit tests");
58
test_step.dependOn(&run_exe_unit_tests.step);
59
}
60
+
61
+
fn genVersion(b: *std.Build) ![]const u8 {
62
+
if (!std.process.can_spawn) {
63
+
std.debug.print("error: version info cannot be retrieved from git. Zig version must be provided using -Dversion-string\n", .{});
64
+
std.process.exit(1);
65
+
}
66
+
const version_string = b.fmt("v{d}.{d}.{d}", .{ version.major, version.minor, version.patch });
67
+
68
+
var code: u8 = undefined;
69
+
const git_describe_untrimmed = b.runAllowFail(&[_][]const u8{
70
+
"git",
71
+
"-C",
72
+
b.build_root.path orelse ".",
73
+
"describe",
74
+
"--tags",
75
+
"--abbrev=9",
76
+
}, &code, .Ignore) catch {
77
+
return version_string;
78
+
};
79
+
if (!std.mem.startsWith(u8, git_describe_untrimmed, version_string)) {
80
+
std.debug.print("error: tagged version does not match internal version\n", .{});
81
+
std.process.exit(1);
82
+
}
83
+
return std.mem.trim(u8, git_describe_untrimmed, " \n\r");
84
+
}
+1
-1
build.zig.zon
···
1
.{
2
.name = .lsr,
3
-
.version = "0.0.0",
4
.fingerprint = 0x495d173f6002e86, // Changing this has security and trust implications.
5
6
.minimum_zig_version = "0.14.0",
···
1
.{
2
.name = .lsr,
3
+
.version = "0.1.0",
4
.fingerprint = 0x495d173f6002e86, // Changing this has security and trust implications.
5
6
.minimum_zig_version = "0.14.0",
+5
src/main.zig
···
2
const builtin = @import("builtin");
3
const ourio = @import("ourio");
4
const zeit = @import("zeit");
0
5
6
const posix = std.posix;
7
···
200
cmd.opts.shortview = if (o) .oneline else .columns;
201
} else if (eql(opt, "help")) {
202
return stderr.writeAll(usage);
0
0
0
0
203
} else {
204
try stderr.print("Invalid opt: '{s}'", .{opt});
205
std.process.exit(1);
···
2
const builtin = @import("builtin");
3
const ourio = @import("ourio");
4
const zeit = @import("zeit");
5
+
const build_options = @import("build_options");
6
7
const posix = std.posix;
8
···
201
cmd.opts.shortview = if (o) .oneline else .columns;
202
} else if (eql(opt, "help")) {
203
return stderr.writeAll(usage);
204
+
} else if (eql(opt, "version")) {
205
+
try bw.writer().print("lsr {s}", .{build_options.version});
206
+
try bw.flush();
207
+
return;
208
} else {
209
try stderr.print("Invalid opt: '{s}'", .{opt});
210
std.process.exit(1);