From be0ba9ea88aff8a658d0495d36accf944b74888d Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 19 Feb 2014 17:50:53 +0800 Subject: add ssh supports(unfinished) --- models/repo.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index 489530f2..1eeeaa63 100644 --- a/models/repo.go +++ b/models/repo.go @@ -29,15 +29,22 @@ type Repo struct { // check if repository is exist func IsRepositoryExist(user *User, reposName string) (bool, error) { repo := Repo{OwnerId: user.Id} - // TODO: get repository by nocase name - return orm.Where("lower_name = ?", strings.ToLower(reposName)).Get(&repo) + has, err := orm.Where("lower_name = ?", strings.ToLower(reposName)).Get(&repo) + if err != nil { + return has, err + } + s, err := os.Stat(filepath.Join(RepoRootPath, user.Name, reposName)) + if err != nil { + return false, err + } + return s.IsDir(), nil } // // create a repository for a user or orgnaziation // func CreateRepository(user *User, reposName string) (*Repo, error) { - p := filepath.Join(repoRootPath, user.Name) + p := filepath.Join(RepoRootPath, user.Name) os.MkdirAll(p, os.ModePerm) f := filepath.Join(p, reposName+".git") _, err := git.InitRepository(f, false) @@ -108,7 +115,7 @@ func DeleteRepository(user *User, reposName string) (err error) { session.Rollback() return err } - if err = os.RemoveAll(filepath.Join(repoRootPath, user.Name, reposName+".git")); err != nil { + if err = os.RemoveAll(filepath.Join(RepoRootPath, user.Name, reposName+".git")); err != nil { // TODO: log and delete manully return err } -- cgit v1.2.3