Files
envy/cmd/fetch.go

48 lines
985 B
Go

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)
}