func NewWorkspaceCommand(s *settings.Settings, args []string) { if len(args) < 1 { fmt.Println("Workspace path is required") return } if filesystem.IsExist(args[0]) { fmt.Println("File or directory", args[0], "exists") os.Exit(1) } w, err := workspace.NewWorkspace(args[0]) if err != nil { fmt.Println("Create new workspace object fail", err) os.Exit(1) } if len(args) < 2 { // if a user didn't set source repository, build from cache if err := w.CreateFromCache(); err != nil { fmt.Println("Create new workspace (from default/cached repository) fail", err) os.Exit(1) } } else { // if a user set source repository, build from remote repository if err := w.CreateFromRepo(args[1]); err != nil { fmt.Println("Create new workspace (from remote repository) fail", err) os.Exit(1) } } //build submodules if scaffolding.IsScaffoldingDir(args[0]) { s, err := scaffolding.ReadScaffolding(w, args[0]) if err != nil { fmt.Println("Read scaffolfing fail", err) os.Exit(1) } if err := s.BuildAllSubModules(); err != nil { fmt.Println("Build submodules fail", err) os.Exit(1) } } //set new workspace s.Workspace = w.GetAbsPath() if err = s.Write(); err != nil { fmt.Println("no write goat setting file", err) os.Exit(1) } }
func BuildHistoryCommand(s *settings.Settings, args []string) { w, err := workspace.ReadWorkspace(s.Workspace) if err != nil { fmt.Println(err) os.Exit(1) } scaff, err := scaffolding.ReadScaffolding(w, s.Workspace) if err != nil { fmt.Println(err) os.Exit(1) } if err := scaff.BuildHistory(); err != nil { fmt.Println(err) os.Exit(1) } fmt.Println("All rebuilded") }
func addResource(s *settings.Settings, resourceType, name string, data interface{}) { w, err := workspace.ReadWorkspace(s.Workspace) if err != nil { fmt.Println(err) os.Exit(1) } r := scaffolding.Resource{ Type: resourceType, Name: name, Data: data, } scaff, err := scaffolding.ReadScaffolding(w, s.Workspace) if err != nil { fmt.Println(err) os.Exit(1) } if err := scaff.AddResource(r); err != nil { fmt.Println(err) os.Exit(1) } }
func AddModuleCommand(s *settings.Settings, args []string) { if len(args) < 1 { fmt.Println("Module destination path is required") os.Exit(1) } if len(args) < 2 { fmt.Println("Module url is required") os.Exit(1) } dest := args[0] depId := args[1] w, err := workspace.ReadWorkspace(s.Workspace) if err != nil { fmt.Println(err) os.Exit(1) } if _, err1 := w.Packages.Get(depId); err1 != nil { var err2 error if depId, err2 = w.Packages.CreteRecord(depId); err2 != nil { fmt.Println(err1) fmt.Println(err2) os.Exit(1) } if err2 = w.Write(); err2 != nil { fmt.Println(err1) fmt.Println(err2) os.Exit(1) } if err2 = w.Packages.UpdateRepo(depId); err2 != nil { fmt.Println(err1) fmt.Println(err2) os.Exit(1) } } scaff, err := scaffolding.ReadScaffolding(w, s.Workspace) if err != nil { fmt.Println(err) os.Exit(1) } m, err := scaff.AddModule(depId, dest) if err != nil { fmt.Println(err) os.Exit(1) } if err := scaff.BuildSubModule(m); err != nil { fmt.Println(err) os.Exit(1) } if err := scaff.Write(); err != nil { fmt.Println(err) os.Exit(1) } fmt.Println("Module added") }