From ef20897b8196b4f3da3ee9bcc5ab731851d3aa2b Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 10 Jul 2021 18:14:33 -0700 Subject: [PATCH] add `version` command, closes #18 --- src/cmd/version.zig | 39 +++++++++++++++++++++++++++++++++++++++ src/lib.zig | 1 + 2 files changed, 40 insertions(+) create mode 100644 src/cmd/version.zig diff --git a/src/cmd/version.zig b/src/cmd/version.zig new file mode 100644 index 0000000000000000000000000000000000000000..d84ac1b288dba878ee40375e3fd38fc3f67d494e --- /dev/null +++ b/src/cmd/version.zig @@ -0,0 +1,39 @@ +const std = @import("std"); +const gpa = std.heap.c_allocator; +const builtin = std.builtin; + +const u = @import("./../util/index.zig"); + +// +// + +pub fn execute(args: [][]u8) !void { + _ = args; + + const root = @import("root"); + const build_options = if (@hasDecl(root, "build_options")) root.build_options else struct {}; + const version = if (@hasDecl(build_options, "version")) build_options.version else "unknown"; + + const stdout = std.io.getStdOut(); + const w = stdout.writer(); + + try w.writeAll("zigmod"); + + try w.print(" {s}", .{version}); + if (std.mem.eql(u8, version, "dev")) { + try w.print( + "-{s}", + .{ + (try u.git_rev_HEAD(gpa, std.fs.cwd()))[0..7], + }, + ); + } + + try w.print(" {s}", .{@tagName(builtin.os.tag)}); + + try w.print(" {s}", .{@tagName(builtin.cpu.arch)}); + + try w.print(" {s}", .{@tagName(builtin.abi)}); + + try w.writeAll("\n"); +} diff --git a/src/lib.zig b/src/lib.zig index 42d12db5d5ca5724d6b5d3fb0fa8e3bf0a2164b3..ffae5125662fac10d39b3c9a01c27157c8e4a963 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -1,4 +1,5 @@ pub const commands_to_bootstrap = struct { + pub const version = @import("./cmd/version.zig"); pub const fetch = @import("./cmd/fetch.zig"); pub const ci = @import("./cmd/ci.zig"); }; -- 2.54.0