aboutsummaryrefslogtreecommitdiff
path: root/models/repo.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo.go')
-rw-r--r--models/repo.go15
1 files changed, 11 insertions, 4 deletions
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
}