Files
gvc/client/clientcmd/init.go

43 lines
1.2 KiB
Go

package clientcmd
import (
"fmt"
"os"
"path/filepath"
"github.com/deranjer/gvc/common/database"
"github.com/deranjer/gvc/common/engine"
)
// InitializeRepo creates the repo directory and a new config file
func InitializeRepo(dbPath string, version string, rootPath string) (string, error) {
cwd, err := os.Getwd()
if err != nil {
fmt.Printf("unable to get current working directory.. permissions issue? %s\n", err)
return "", err
}
repoName := filepath.Base(cwd)
fmt.Println("Initializing repo in dir: ", cwd)
err = os.Mkdir(".gvc", 0644)
if err != nil {
fmt.Printf(".gvc directory already exists, but no config file... continuing")
}
err = engine.CreatePaths(rootPath)
if err != nil {
fmt.Printf("unable to create root dir paths.. permissions issue? %s\n", err)
return "", err
}
fmt.Println("Creating DB...")
err = database.CreateDB(dbPath, version, repoName)
if err != nil {
fmt.Printf("unable to create db: %s\n", err)
err := os.Remove(dbPath)
if err != nil {
fmt.Printf("unable to roll back database, cannot delete db: %s err: %s", dbPath, err)
}
return "", err
}
fmt.Println("Adding new repo with name: ", repoName)
return repoName, nil
}