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

Function runScriptCmd

internal/boxcli/run.go:128–211  ·  view source on GitHub ↗
(cmd *cobra.Command, args []string, flags runCmdFlags)

Source from the content-addressed store, hash-verified

126}
127
128func runScriptCmd(cmd *cobra.Command, args []string, flags runCmdFlags) error {
129 ctx := cmd.Context()
130 if len(args) == 0 || flags.listScripts {
131 scripts := listScripts(cmd, flags)
132 if len(scripts) == 0 {
133 fmt.Fprintln(cmd.OutOrStdout(), "no scripts defined in devbox.json")
134 return nil
135 }
136 fmt.Fprintln(cmd.OutOrStdout(), "Available scripts:")
137 for _, p := range scripts {
138 fmt.Fprintf(cmd.OutOrStdout(), "* %s\n", p)
139 }
140 return nil
141 }
142
143 path, script, scriptArgs, err := parseScriptArgs(args, flags)
144 if err != nil {
145 return redact.Errorf("error parsing script arguments: %w", err)
146 }
147 slog.Debug("run script", "script", script, "args", scriptArgs)
148
149 env, err := flags.Env(path)
150 if err != nil {
151 return err
152 }
153
154 boxes := []*devbox.Devbox{}
155 devboxOpts := &devopt.Opts{
156 Dir: path,
157 Env: env,
158 Environment: flags.config.environment,
159 Stderr: cmd.ErrOrStderr(),
160 }
161
162 if flags.allProjects {
163 boxes, err = multi.Open(devboxOpts)
164 if err != nil {
165 return errors.WithStack(err)
166 }
167 } else {
168 box, err := devbox.Open(devboxOpts)
169 if err != nil {
170 return redact.Errorf("error reading devbox.json: %w", err)
171 }
172 boxes = append(boxes, box)
173 }
174
175 envOpts := devopt.EnvOptions{
176 Hooks: devopt.LifecycleHooks{
177 OnStaleState: func() {
178 if !flags.recomputeEnv {
179 ux.FHidableWarning(
180 ctx,
181 cmd.ErrOrStderr(),
182 devbox.StateOutOfDateMessage,
183 "with --recompute=true",
184 )
185 }

Callers 1

runCmdFunction · 0.85

Calls 11

ErrorfFunction · 0.92
OpenFunction · 0.92
OpenFunction · 0.92
FHidableWarningFunction · 0.92
FinfofFunction · 0.92
listScriptsFunction · 0.85
parseScriptArgsFunction · 0.85
ListScriptsMethod · 0.80
RunScriptMethod · 0.80
EnvMethod · 0.65
ProjectDirMethod · 0.65

Tested by

no test coverage detected