package projects import ( "os" "path/filepath" "gitlab.sweetwater.com/it/devops/tools/gitlab-project-manager/internal/gitlab" ) func (c *Cache) GoTo(project *gitlab.Project) { pPath := c.GetProjectPath(project) c.log.Debug("Going to project", c.log.Args( "project", project.String(), "path", pPath, )) if _, err := os.Stat(pPath); err != nil { c.log.Info("Preparing project path") c.PrepProjectPath(pPath) } os.Chdir(filepath.Dir(pPath)) } func (c *Cache) IsProjectCloned(p *gitlab.Project) bool { _, err := os.Stat(c.GetProjectPath(p) + "/.git") if err == nil { return true } return false } func (c *Cache) PrepProjectPath(path string) { if err := os.MkdirAll(path, 0750); err != nil { c.log.Fatal("Failed to prepare project path", c.log.Args( "path", path, "error", err, )) } } func (c *Cache) GetProjectPath(p *gitlab.Project) string { return c.path + "/" + p.SanitizedPath() }