MCPcopy Index your code
hub / github.com/jetify-com/devbox / shellEnvCmd

Function shellEnvCmd

internal/boxcli/shellenv.go:37–94  ·  view source on GitHub ↗
(defaults shellenvFlagDefaults)

Source from the content-addressed store, hash-verified

35}
36
37func shellEnvCmd(defaults shellenvFlagDefaults) *cobra.Command {
38 flags := shellEnvCmdFlags{}
39 command := &cobra.Command{
40 Use: "shellenv",
41 Short: "Print shell commands that create a Devbox Environment in the shell",
42 Args: cobra.ExactArgs(0),
43 PreRunE: ensureNixInstalled,
44 RunE: func(cmd *cobra.Command, args []string) error {
45 s, err := shellEnvFunc(cmd, flags)
46 if err != nil {
47 return err
48 }
49 fmt.Fprintln(cmd.OutOrStdout(), s)
50 if flags.format != "nushell" && !strings.HasSuffix(os.Getenv("SHELL"), "fish") {
51 fmt.Fprintln(cmd.OutOrStdout(), "hash -r")
52 }
53 return nil
54 },
55 }
56
57 command.Flags().BoolVar(
58 &flags.runInitHook, "init-hook", false, "runs init hook after exporting shell environment")
59 command.Flags().BoolVar(
60 &flags.install, "install", false, "install packages before exporting shell environment")
61
62 command.Flags().BoolVar(
63 &flags.pure, "pure", false, "if this flag is specified, devbox creates an isolated environment inheriting almost no variables from the current environment. A few variables, in particular HOME, USER and DISPLAY, are retained.")
64 command.Flags().BoolVar(
65 &flags.preservePathStack, "preserve-path-stack", false,
66 "preserves existing PATH order if this project's environment is already in PATH. "+
67 "Useful if you want to avoid overshadowing another devbox project that is already active")
68 _ = command.Flags().MarkHidden("preserve-path-stack")
69 command.Flags().BoolVar(
70 &flags.noRefreshAlias, "no-refresh-alias", false,
71 "by default, devbox will add refresh alias to the environment"+
72 "Use this flag to disable this behavior.")
73 _ = command.Flags().MarkHidden("no-refresh-alias")
74 command.Flags().BoolVar(
75 &flags.omitNixEnv, "omit-nix-env", defaults.omitNixEnv,
76 "shell environment will omit the env-vars from print-dev-env",
77 )
78 _ = command.Flags().MarkHidden("omit-nix-env")
79
80 command.Flags().BoolVarP(
81 &flags.recomputeEnv, "recompute", "r", defaults.recomputeEnv,
82 "Recompute environment if needed",
83 )
84
85 command.Flags().StringVar(
86 &flags.format, "format", "bash",
87 "Output format for shell environment (nushell)",
88 )
89
90 flags.config.register(command)
91 flags.envFlag.register(command)
92
93 return command
94}

Callers 2

globalCmdFunction · 0.85
RootCmdFunction · 0.85

Calls 2

shellEnvFuncFunction · 0.85
registerMethod · 0.45

Tested by

no test coverage detected