Ejemplo n.º 1
0
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)
	}
}
Ejemplo n.º 2
0
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")
}
Ejemplo n.º 3
0
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)
	}
}
Ejemplo n.º 4
0
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")
}