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

Function CreateEnvrc

internal/devbox/generate/devcontainer_util.go:143–176  ·  view source on GitHub ↗
(ctx context.Context, opts devopt.EnvrcOpts)

Source from the content-addressed store, hash-verified

141}
142
143func CreateEnvrc(ctx context.Context, opts devopt.EnvrcOpts) error {
144 defer trace.StartRegion(ctx, "createEnvrc").End()
145
146 // create .envrc file
147 file, err := os.Create(filepath.Join(opts.EnvrcDir, ".envrc"))
148 if err != nil {
149 return err
150 }
151 defer file.Close()
152
153 flags := []string{}
154
155 if len(opts.EnvMap) > 0 {
156 for k, v := range opts.EnvMap {
157 flags = append(flags, fmt.Sprintf("--env %s=%s", k, v))
158 }
159 }
160 if opts.EnvFile != "" {
161 flags = append(flags, fmt.Sprintf("--env-file %s", opts.EnvFile))
162 }
163
164 configDir, err := getRelativePathToConfig(opts.EnvrcDir, opts.ConfigDir)
165 if err != nil {
166 return err
167 }
168
169 t := template.Must(template.ParseFS(tmplFS, "tmpl/envrc.tmpl"))
170
171 // write content into file
172 return t.Execute(file, map[string]string{
173 "EnvFlag": strings.Join(flags, " "),
174 "ConfigDir": formatConfigDirArg(configDir),
175 })
176}
177
178// Returns the relative path from sourceDir to configDir, or an error if it cannot be determined.
179func getRelativePathToConfig(sourceDir, configDir string) (string, error) {

Callers 1

GenerateEnvrcFileMethod · 0.92

Calls 4

getRelativePathToConfigFunction · 0.85
formatConfigDirArgFunction · 0.85
EndMethod · 0.80
ExecuteMethod · 0.65

Tested by

no test coverage detected