Files
envy/cmd/init.go

47 lines
973 B
Go

package cmd
import (
"envy/cmd/utils"
"fmt"
"os"
"path"
"github.com/spf13/cobra"
)
// initCmd represents the init command
var initCmd = &cobra.Command{
Use: "init",
Short: "Initialize envy on your system",
Run: func(cmd *cobra.Command, args []string) {
_, err := os.Stat(utils.EnvyPath)
if os.IsExist(err) {
fmt.Println(utils.ErrStyle.Render("Config directory already exists."))
return
}
err = os.Mkdir(utils.EnvyPath, 0755)
if err != nil {
fmt.Println(utils.ErrStyle.Render("Failed to create config directory:", err.Error()))
}
configFile, err := os.Create(path.Join(utils.EnvyPath, "config.toml"))
if err != nil {
fmt.Println(utils.ErrStyle.Render("Failed to create config file:", err.Error()))
}
defer configFile.Close()
utils.InitDb()
utils.MigrateDb()
configFile.Write([]byte("[config]\nmode = \"local\"\n"))
fmt.Println("envy initialized on your system.")
},
}
func init() {
rootCmd.AddCommand(initCmd)
}