Skip to content

Commit 3266546

Browse files
committed
Removed generateOpts from DevboxOpts
1 parent f5613c5 commit 3266546

File tree

4 files changed

+19
-25
lines changed

4 files changed

+19
-25
lines changed

devbox.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ type Devbox interface {
2525
// Generate creates the directory of Nix files and the Dockerfile that define
2626
// the devbox environment.
2727
Generate(ctx context.Context) error
28-
GenerateDevcontainer(ctx context.Context) error
29-
GenerateDockerfile(ctx context.Context) error
28+
GenerateDevcontainer(ctx context.Context, generateOpts devopt.GenerateOpts) error
29+
GenerateDockerfile(ctx context.Context, generateOpts devopt.GenerateOpts) error
3030
GenerateEnvrcFile(ctx context.Context, force bool, envFlags devopt.EnvFlags) error
3131
Info(ctx context.Context, pkg string, markdown bool) error
3232
Install(ctx context.Context) error

internal/boxcli/generate.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,21 +140,21 @@ func runGenerateCmd(cmd *cobra.Command, flags *generateCmdFlags) error {
140140
box, err := devbox.Open(&devopt.Opts{
141141
Dir: flags.config.path,
142142
Writer: cmd.ErrOrStderr(),
143-
GenerateOpts: devopt.GenerateOpts{
144-
Force: flags.force,
145-
RootUser: flags.rootUser,
146-
},
147143
})
148144
if err != nil {
149145
return errors.WithStack(err)
150146
}
147+
generateOpts := devopt.GenerateOpts{
148+
Force: flags.force,
149+
RootUser: flags.rootUser,
150+
}
151151
switch cmd.Use {
152152
case "debug":
153153
return box.Generate(cmd.Context())
154154
case "devcontainer":
155-
return box.GenerateDevcontainer(cmd.Context())
155+
return box.GenerateDevcontainer(cmd.Context(), generateOpts)
156156
case "dockerfile":
157-
return box.GenerateDockerfile(cmd.Context())
157+
return box.GenerateDockerfile(cmd.Context(), generateOpts)
158158
}
159159
return nil
160160
}

internal/impl/devbox.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ type Devbox struct {
6161
pure bool
6262
allowInsecureAdds bool
6363
customProcessComposeFile string
64-
GenerateOpts *devopt.GenerateOpts
6564

6665
// Possible TODO: hardcode this to stderr. Allowing the caller to specify the
6766
// writer is error prone. Since it is almost always stderr, we should default
@@ -94,10 +93,6 @@ func Open(opts *devopt.Opts) (*Devbox, error) {
9493
pure: opts.Pure,
9594
customProcessComposeFile: opts.CustomProcessComposeFile,
9695
allowInsecureAdds: opts.AllowInsecureAdds,
97-
GenerateOpts: &devopt.GenerateOpts{
98-
Force: opts.GenerateOpts.Force,
99-
RootUser: opts.GenerateOpts.RootUser,
100-
},
10196
}
10297

10398
lock, err := lock.GetFile(box)
@@ -375,7 +370,7 @@ func (d *Devbox) Info(ctx context.Context, pkg string, markdown bool) error {
375370

376371
// GenerateDevcontainer generates devcontainer.json and Dockerfile for vscode run-in-container
377372
// and GitHub Codespaces
378-
func (d *Devbox) GenerateDevcontainer(ctx context.Context) error {
373+
func (d *Devbox) GenerateDevcontainer(ctx context.Context, generateOpts devopt.GenerateOpts) error {
379374
ctx, task := trace.NewTask(ctx, "devboxGenerateDevcontainer")
380375
defer task.End()
381376

@@ -386,7 +381,7 @@ func (d *Devbox) GenerateDevcontainer(ctx context.Context) error {
386381

387382
// check if devcontainer.json or Dockerfile exist
388383
filesExist := fileutil.Exists(devContainerJSONPath) || fileutil.Exists(dockerfilePath)
389-
if !d.GenerateOpts.Force && filesExist {
384+
if !generateOpts.Force && filesExist {
390385
return usererr.New(
391386
"Files devcontainer.json or Dockerfile are already present in .devcontainer/. " +
392387
"Remove the files or use --force to overwrite them.",
@@ -403,7 +398,7 @@ func (d *Devbox) GenerateDevcontainer(ctx context.Context) error {
403398
// Setup generate parameters
404399
gen := &generate.Options{
405400
Path: devContainerPath,
406-
RootUser: d.GenerateOpts.RootUser,
401+
RootUser: generateOpts.RootUser,
407402
IsDevcontainer: true,
408403
Pkgs: d.Packages(),
409404
LocalFlakeDirs: d.getLocalFlakesDirs(),
@@ -425,14 +420,14 @@ func (d *Devbox) GenerateDevcontainer(ctx context.Context) error {
425420
}
426421

427422
// GenerateDockerfile generates a Dockerfile that replicates the devbox shell
428-
func (d *Devbox) GenerateDockerfile(ctx context.Context) error {
423+
func (d *Devbox) GenerateDockerfile(ctx context.Context, generateOpts devopt.GenerateOpts) error {
429424
ctx, task := trace.NewTask(ctx, "devboxGenerateDockerfile")
430425
defer task.End()
431426

432427
dockerfilePath := filepath.Join(d.projectDir, "Dockerfile")
433428
// check if Dockerfile doesn't exist
434429
filesExist := fileutil.Exists(dockerfilePath)
435-
if !d.GenerateOpts.Force && filesExist {
430+
if !generateOpts.Force && filesExist {
436431
return usererr.New(
437432
"Dockerfile is already present in the current directory. " +
438433
"Remove it or use --force to overwrite it.",
@@ -442,7 +437,7 @@ func (d *Devbox) GenerateDockerfile(ctx context.Context) error {
442437
// Setup Generate parameters
443438
gen := &generate.Options{
444439
Path: d.projectDir,
445-
RootUser: d.GenerateOpts.RootUser,
440+
RootUser: generateOpts.RootUser,
446441
IsDevcontainer: false,
447442
Pkgs: d.Packages(),
448443
LocalFlakeDirs: d.getLocalFlakesDirs(),

internal/impl/devopt/devboxopts.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,6 @@ import (
44
"io"
55
)
66

7-
type GenerateOpts struct {
8-
Force bool
9-
RootUser bool
10-
}
11-
127
type Opts struct {
138
AllowInsecureAdds bool
149
Dir string
@@ -17,7 +12,11 @@ type Opts struct {
1712
IgnoreWarnings bool
1813
CustomProcessComposeFile string
1914
Writer io.Writer
20-
GenerateOpts GenerateOpts
15+
}
16+
17+
type GenerateOpts struct {
18+
Force bool
19+
RootUser bool
2120
}
2221

2322
type EnvFlags struct {

0 commit comments

Comments
 (0)