Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Command = &cobra.Command{ Use: "update", Short: "Update the .env file from a source", RunE: func(cmd *cobra.Command, args []string) error { env, _, err := shared.Setup(cmd.Flags()) if err != nil { return err } fmt.Print("Finding source") source, err := env.GetConfig("dottie/source") if err != nil { return err } fmt.Println(" ✅") fmt.Print("Grabbing .env.docker from [", source, "]") if _, err := os.Stat(".env.source"); errors.Is(err, os.ErrNotExist) { tmp, err := os.OpenFile(".env.source", os.O_RDWR|os.O_CREATE, 0o666) if err != nil { return err } client := getter.Client{ DisableSymlinks: true, Mode: getter.ClientModeFile, Src: source, Dst: tmp.Name(), } if err := client.Get(); err != nil { return err } } fmt.Println(" ✅") fmt.Print("Copying .env.source into .env.merged") if err := Copy(".env.source", ".env.merged"); err != nil { return err } fmt.Println(" ✅") fmt.Print("Loading and parsing .env.merged") mergedEnv, err := pkg.Load(".env.merged") if err != nil { return err } fmt.Println(" ✅") fmt.Println("Updating .env.merged with key/value pairs from .env") for _, stmt := range env.Assignments() { if !stmt.Active { continue } changed, err := mergedEnv.Upsert(stmt, ast.UpsertOptions{SkipIfSame: true, ErrorIfMissing: true}) if err != nil { fmt.Println(" ❌", err.Error()) continue } if changed != nil { fmt.Println(" ✅", fmt.Sprintf("Key [%s] was successfully updated", stmt.Name)) } } fmt.Println() fmt.Println("Saving .env.merged") return pkg.Save(".env.merged", mergedEnv) }, }
Functions ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.