aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-10-17 03:42:03 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-10-17 03:42:03 -0700
commit884b5e13eefe8dfe930f1f163a7d1759cd2b46a9 (patch)
treee8df38a89434daf7cfdd1ebb03acc09b74d19ca7
parent7d4aab4cf17e6105ecb0509eb5a78d6e2dce32e5 (diff)
downloadbun-884b5e13eefe8dfe930f1f163a7d1759cd2b46a9.tar.gz
bun-884b5e13eefe8dfe930f1f163a7d1759cd2b46a9.tar.zst
bun-884b5e13eefe8dfe930f1f163a7d1759cd2b46a9.zip
Add `--open` flag to `bun create`
-rw-r--r--src/cli/create_command.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/cli/create_command.zig b/src/cli/create_command.zig
index 688c2e6a0..5a738f673 100644
--- a/src/cli/create_command.zig
+++ b/src/cli/create_command.zig
@@ -181,6 +181,7 @@ const CreateOptions = struct {
skip_package_json: bool = false,
positionals: []const string,
verbose: bool = false,
+ open: bool = false,
const params = [_]clap.Param(clap.Help){
clap.parseParam("--help Print this menu") catch unreachable,
@@ -192,6 +193,7 @@ const CreateOptions = struct {
clap.parseParam("--no-git Don't create a git repository") catch unreachable,
clap.parseParam("--verbose Too many logs") catch unreachable,
clap.parseParam("--no-package-json Disable package.json transforms") catch unreachable,
+ clap.parseParam("--open On finish, start bun & open in-browser") catch unreachable,
clap.parseParam("<POS>... ") catch unreachable,
};
@@ -244,6 +246,7 @@ const CreateOptions = struct {
opts.skip_package_json = args.flag("--no-package-json");
opts.verbose = args.flag("--verbose");
+ opts.open = args.flag("--open");
opts.skip_install = args.flag("--no-install");
opts.skip_git = args.flag("--no-git");
opts.overwrite = args.flag("--force");
@@ -1677,6 +1680,23 @@ pub const CreateCommand = struct {
});
Output.flush();
+
+ if (create_options.open) {
+ if (which(&bun_path_buf, PATH, destination, "bun")) |bun| {
+ var argv = [_]string{std.mem.span(bun)};
+ var child = try std.ChildProcess.init(&argv, ctx.allocator);
+ child.cwd = destination;
+ child.stdin_behavior = .Inherit;
+ child.stdout_behavior = .Inherit;
+ child.stderr_behavior = .Inherit;
+
+ const open = @import("../open.zig");
+ open.openURL("http://localhost:3000/") catch {};
+
+ try child.spawn();
+ _ = child.wait() catch {};
+ }
+ }
}
};
const Commands = .{