build baseline: pinned sqlite + mbedtls, static musl cross targets, cli stub

This commit is contained in:
2026-07-31 23:59:39 +02:00
parent b609176a0b
commit 1fa82668ec
6 changed files with 351 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
const std = @import("std");
const version = @import("version.zig");
const usage =
\\usage: nxdns <command>
\\
\\commands:
\\ run serve DNS
\\ check validate the configuration
\\ export write local records to stdout
\\ import read local records from stdin
\\ version print version information
\\
;
const exit_ok = 0;
const exit_not_implemented = 2;
const exit_usage = 64;
pub fn main(init: std.process.Init) u8 {
var args = init.minimal.args.iterate();
_ = args.skip();
const command = args.next() orelse return fail(init.io, usage);
if (std.mem.eql(u8, command, "version")) {
return print(init.io, "nxdns {s} ({s})\nzig {s}\n", .{
version.string,
version.git_commit,
version.zig_version_string,
});
}
for ([_][]const u8{ "run", "check", "export", "import" }) |known| {
if (std.mem.eql(u8, command, known)) {
_ = print(init.io, "not implemented\n", .{});
return exit_not_implemented;
}
}
return fail(init.io, usage);
}
fn print(io: std.Io, comptime format: []const u8, arguments: anytype) u8 {
var buffer: [512]u8 = undefined;
var file_writer = std.Io.File.stdout().writer(io, &buffer);
file_writer.interface.print(format, arguments) catch return 1;
file_writer.interface.flush() catch return 1;
return exit_ok;
}
fn fail(io: std.Io, message: []const u8) u8 {
var buffer: [512]u8 = undefined;
var file_writer = std.Io.File.stderr().writer(io, &buffer);
file_writer.interface.writeAll(message) catch {};
file_writer.interface.flush() catch {};
return exit_usage;
}