feat: add current environment tracker

This commit is contained in:
2025-09-25 23:26:35 +05:30
parent 645418fe79
commit 54c23bad6f
4 changed files with 62 additions and 24 deletions

View File

@@ -24,6 +24,7 @@ var switchCmd = &cobra.Command{
utils.StopIfErr(err)
project := envy.Get("envy.project").(string)
current := envy.Get("envy.current").(string)
dbProject, err := utils.GetProject(project)
utils.StopIfErr(err)
@@ -35,26 +36,34 @@ var switchCmd = &cobra.Command{
envs, err := utils.GetEnvironments(dbProject.ID)
utils.StopIfErr(err)
form := huh.NewForm(
huh.NewGroup(
huh.NewSelect[string]().
Title("Select environment").
Description("Select an environment to switch to").
OptionsFunc(func() []huh.Option[string] {
var options []huh.Option[string]
for _, en := range envs {
options = append(options, huh.NewOption(en.Name, en.Name))
}
return options
}, &env).
Value(&env),
),
)
if len(envs) == 2 {
for _, en := range envs {
if en.Name != current {
env = en.Name
}
}
} else {
form := huh.NewForm(
huh.NewGroup(
huh.NewSelect[string]().
Title("Select environment").
Description("Select an environment to switch to").
OptionsFunc(func() []huh.Option[string] {
var options []huh.Option[string]
for _, en := range envs {
options = append(options, huh.NewOption(en.Name, en.Name))
}
return options
}, &env).
Value(&env),
),
)
err = form.Run()
utils.StopIfErr(err)
if env == "" {
return
err = form.Run()
utils.StopIfErr(err)
if env == "" {
return
}
}
}
@@ -72,6 +81,10 @@ var switchCmd = &cobra.Command{
utils.StopIfErr(err)
os.WriteFile(path.Join(cwd, ".env"), []byte(selectedEnv.Data), 0744)
envy.Set("envy.current", env)
err = utils.WriteEnvy(envy)
utils.StopIfErr(err)
fmt.Printf("Switched to environment %v.\n", env)
},
}