Skip to content

Commit 6da0d57

Browse files
Updates in response to code review
1 parent 415686e commit 6da0d57

File tree

4 files changed

+28
-24
lines changed

4 files changed

+28
-24
lines changed

internal/boxcli/generate.go

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -318,26 +318,30 @@ func runGenerateDirenvCmd(cmd *cobra.Command, flags *generateCmdFlags) error {
318318
// working directory when provided to this function. However, since the config file will ultimately
319319
// be relative to the .envrc file, we need to determine the relative path from envrcDir to configDir.
320320
func determineDirenvDirs(configDir, envrcDir string) (string, string, error) {
321-
// If envrcDir is specified, use it as the directory for .envrc and
322-
// then determine configDir relative to that.
323-
if envrcDir != "" {
324-
if configDir == "" {
325-
return "", envrcDir, nil
326-
}
327-
328-
relativeConfigDir, err := filepath.Rel(envrcDir, configDir)
329-
if err != nil {
330-
return "", "", errors.Wrapf(err, "failed to determine relative path from %s to %s", envrcDir, configDir)
331-
}
332-
333-
// If the relative path is ".", it means configDir is the same as envrcDir.
334-
if relativeConfigDir == "." {
335-
relativeConfigDir = ""
336-
}
337-
338-
return relativeConfigDir, envrcDir, nil
339-
}
340321
// If envrcDir is not specified, we will use the configDir as the location for .envrc. This is
341322
// for backward compatibility (prior to the --envrc-dir flag being introduced).
342-
return "", configDir, nil
323+
if envrcDir == "" {
324+
return "", configDir, nil
325+
}
326+
327+
// If no configDir is specified, it will be assumed to be in the same directory as the .envrc file
328+
// which means we can just return an empty configDir.
329+
if configDir == "" {
330+
return "", envrcDir, nil
331+
}
332+
333+
relativeConfigDir, err := filepath.Rel(envrcDir, configDir)
334+
if err != nil {
335+
return "", "", errors.Wrapf(err, "failed to determine relative path from %s to %s", envrcDir, configDir)
336+
}
337+
338+
// If the relative path is ".", it means configDir is the same as envrcDir. Leaving it as "."
339+
// will result in the .envrc containing "--config .", which is fine, but unnecessary and also
340+
// a change from the previous behavior. So we will return an empty string for relativeConfigDir
341+
// which will result in the .envrc file not containing the "--config" flag at all.
342+
if relativeConfigDir == "." {
343+
relativeConfigDir = ""
344+
}
345+
346+
return relativeConfigDir, envrcDir, nil
343347
}

internal/devbox/devbox.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ func (d *Devbox) GenerateEnvrcFile(ctx context.Context, force bool, opts devopt.
555555
if err != nil {
556556
return errors.WithStack(err)
557557
}
558-
ux.Fsuccessf(d.stderr, "generated .envrc file in %q.\n", opts.EnvrcDir)
558+
ux.Fsuccessf(d.stderr, "generated .envrc file\n")
559559
if cmdutil.Exists("direnv") {
560560
cmd := exec.Command("direnv", "allow")
561561
err := cmd.Run()

internal/devbox/generate/devcontainer_util.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,12 @@ func CreateEnvrc(ctx context.Context, opts devopt.EnvrcOpts) error {
153153
flags := []string{}
154154

155155
if len(opts.EnvMap) > 0 {
156-
for k, v := range opts.EnvFlags.EnvMap {
156+
for k, v := range opts.EnvMap {
157157
flags = append(flags, fmt.Sprintf("--env %s=%s", k, v))
158158
}
159159
}
160160
if opts.EnvFile != "" {
161-
flags = append(flags, fmt.Sprintf("--env-file %s", opts.EnvFlags.EnvFile))
161+
flags = append(flags, fmt.Sprintf("--env-file %s", opts.EnvFile))
162162
}
163163

164164
t := template.Must(template.ParseFS(tmplFS, "tmpl/envrc.tmpl"))

testscripts/generate/direnv-printenvrc.test.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Testscript to validate teh output of --print-envrc
1+
# Testscript to validate the output of --print-envrc
22

33
exec devbox init
44
exec devbox generate direnv --print-envrc

0 commit comments

Comments
 (0)