package cmd import ( "envy/cmd/utils" "fmt" "os" "path" "github.com/spf13/cobra" ) // fetchCmd represents the fetch command var fetchCmd = &cobra.Command{ Use: "fetch", Short: "Automatically get the pinned environment for this project", Run: func(cmd *cobra.Command, args []string) { envy, err := utils.GetEnvy() utils.StopIfErr(err) project, err := utils.GetKey(envy, "envy.project") utils.StopIfErr(err) pinned, err := utils.GetKey(envy, "envy.env") utils.StopIfErr(err) dbProject, err := utils.GetProject(project) utils.StopIfErr(err) dbEnv, err := utils.GetEnvironment(dbProject.ID, pinned) utils.StopIfErr(err) cwd, err := os.Getwd() utils.StopIfErr(err) os.WriteFile(path.Join(cwd, ".env"), []byte(dbEnv.Data), 0755) envy.Set("envy.current", pinned) err = utils.WriteEnvy(envy) utils.StopIfErr(err) fmt.Printf("Fetched environment %s for project %s.\n", pinned, project) }, } func init() { rootCmd.AddCommand(fetchCmd) }