diff options
author | 2023-08-09 10:43:04 -0700 | |
---|---|---|
committer | 2023-08-09 10:43:04 -0700 | |
commit | 8717303a80668e4043a9ae1586ff1d4d3b12ff00 (patch) | |
tree | 4d47b0d7c1a94720d0a5243cebda90b39f619d6d /src | |
parent | 385d440694a95bc4bfee25daa602c5c4363b6423 (diff) | |
download | bun-8717303a80668e4043a9ae1586ff1d4d3b12ff00.tar.gz bun-8717303a80668e4043a9ae1586ff1d4d3b12ff00.tar.zst bun-8717303a80668e4043a9ae1586ff1d4d3b12ff00.zip |
Add support for `bun --revision` (#4027)
Co-authored-by: Yash Sharma <yashsharma@Yashs-MacBook-Air.local>
Diffstat (limited to 'src')
-rw-r--r-- | src/__global.zig | 11 | ||||
-rw-r--r-- | src/cli.zig | 11 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/__global.zig b/src/__global.zig index 9a33fff37..b581639e6 100644 --- a/src/__global.zig +++ b/src/__global.zig @@ -28,6 +28,17 @@ else if (Environment.isDebug) else std.fmt.comptimePrint("{s} ({s})", .{ version_string, Environment.git_sha[0..@min(Environment.git_sha.len, 8)] }); +pub const package_json_version_with_revision = if (Environment.git_sha.len == 0) + package_json_version +else if (Environment.isDebug) + std.fmt.comptimePrint(BASE_VERSION ++ ".{d}-debug+{s}", .{ build_id, Environment.git_sha }) +else if (Environment.is_canary) + std.fmt.comptimePrint(BASE_VERSION ++ ".{d}-canary+{s}", .{ build_id, Environment.git_sha }) +else if (Environment.isTest) + std.fmt.comptimePrint(BASE_VERSION ++ ".{d}-test+{s}", .{ build_id, Environment.git_sha }) +else + std.fmt.comptimePrint(BASE_VERSION ++ ".{d}+{s}", .{ build_id, Environment.git_sha }); + pub const os_name = if (Environment.isWindows) "win32" else if (Environment.isMac) diff --git a/src/cli.zig b/src/cli.zig index 04f01053a..3400a70f4 100644 --- a/src/cli.zig +++ b/src/cli.zig @@ -148,6 +148,7 @@ pub const Arguments = struct { clap.parseParam("--main-fields <STR>... Main fields to lookup in package.json. Defaults to --target dependent") catch unreachable, clap.parseParam("--no-summary Don't print a summary (when generating .bun)") catch unreachable, clap.parseParam("-v, --version Print version and exit") catch unreachable, + clap.parseParam("--revision Print version with revision and exit") catch unreachable, clap.parseParam("--tsconfig-override <STR> Load tsconfig from path instead of cwd/tsconfig.json") catch unreachable, clap.parseParam("-d, --define <STR>... Substitute K:V while parsing, e.g. --define process.env.NODE_ENV:\"development\". Values are parsed as JSON.") catch unreachable, clap.parseParam("-e, --external <STR>... Exclude module from transpilation (can use * wildcards). ex: -e react") catch unreachable, @@ -234,6 +235,12 @@ pub const Arguments = struct { Global.exit(0); } + fn printRevisionAndExit() noreturn { + @setCold(true); + Output.writer().writeAll(Global.package_json_version_with_revision ++ "\n") catch {}; + Global.exit(0); + } + pub fn loadConfigPath(allocator: std.mem.Allocator, auto_loaded: bool, config_path: [:0]const u8, ctx: *Command.Context, comptime cmd: Command.Tag) !void { var config_file = std.fs.File{ .handle = std.os.openZ(config_path, std.os.O.RDONLY, 0) catch |err| { @@ -365,6 +372,10 @@ pub const Arguments = struct { printVersionAndExit(); } + if (args.flag("--revision")) { + printRevisionAndExit(); + } + var cwd: []u8 = undefined; if (args.option("--cwd")) |cwd_| { cwd = brk: { |