Skip to content
Snippets Groups Projects
init.go 972 B
Newer Older
package cmd

import (
Tamer Tas's avatar
Tamer Tas committed
	"fmt"
Banglanfeng Pan's avatar
Banglanfeng Pan committed
	"github.com/Wattpad/boilr/pkg/boilr"
	"github.com/Wattpad/boilr/pkg/util/exit"
	"github.com/Wattpad/boilr/pkg/util/osutil"
	cli "github.com/spf13/cobra"
)

// Init contains the cli-command for initializing the local template
// registry in case it's not initialized.
var Init = &cli.Command{
	Use:   "init",
Tamer Tas's avatar
Tamer Tas committed
	Short: "Initialize directories required by boilr (By default done by installation script)",
	Run: func(c *cli.Command, _ []string) {
Tamer Tas's avatar
Tamer Tas committed
		// Check if .config/boilr exists
		if exists, err := osutil.DirExists(boilr.Configuration.TemplateDirPath); exists {
			if shouldRecreate := GetBoolFlag(c, "force"); !shouldRecreate {
Tamer Tas's avatar
Tamer Tas committed
				exit.GoodEnough("template registry is already initialized use -f to reinitialize")
			}
		} else if err != nil {
Tamer Tas's avatar
Tamer Tas committed
			exit.Error(fmt.Errorf("init: %s", err))
Tamer Tas's avatar
Tamer Tas committed

Tamer Tas's avatar
Tamer Tas committed
		if err := osutil.CreateDirs(boilr.Configuration.TemplateDirPath); err != nil {
			exit.Error(err)
		}

Tamer Tas's avatar
Tamer Tas committed
		exit.OK("Initialization complete")