From 8dd956f88a0d279296e5b5440cde8bd877ca0fea Mon Sep 17 00:00:00 2001
From: Unknown <joe2010xtmf@163.com>
Date: Wed, 12 Mar 2014 21:40:18 -0400
Subject: [PATCH 1/2] Move custom dir to custom/

---
 .gitignore           | 2 +-
 modules/base/conf.go | 5 ++---
 serve.go             | 2 +-
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/.gitignore b/.gitignore
index 49d19b83d0..0323c29726 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,4 @@ gogs
 .DS_Store
 *.db
 *.log
-conf/custom.ini
\ No newline at end of file
+custom/
\ No newline at end of file
diff --git a/modules/base/conf.go b/modules/base/conf.go
index 1240448c10..809b2b8c18 100644
--- a/modules/base/conf.go
+++ b/modules/base/conf.go
@@ -37,15 +37,14 @@ func init() {
 		os.Exit(2)
 	}
 
-	cfgPathPrefix := filepath.Join(workDir, "conf")
-	cfgPath := filepath.Join(cfgPathPrefix, "app.ini")
+	cfgPath := filepath.Join(workDir, "conf/app.ini")
 	Cfg, err = goconfig.LoadConfigFile(cfgPath)
 	if err != nil {
 		fmt.Printf("Cannot load config file '%s'\n", cfgPath)
 		os.Exit(2)
 	}
 
-	cfgPath = filepath.Join(cfgPathPrefix, "custom.ini")
+	cfgPath = filepath.Join(workDir, "custom/conf/app.ini")
 	if com.IsFile(cfgPath) {
 		if err = Cfg.AppendFiles(cfgPath); err != nil {
 			fmt.Printf("Cannot load config file '%s'\n", cfgPath)
diff --git a/serve.go b/serve.go
index d4874b3ed6..97b9c567e6 100644
--- a/serve.go
+++ b/serve.go
@@ -58,7 +58,7 @@ func runServ(*cli.Context) {
 
 	cmd := os.Getenv("SSH_ORIGINAL_COMMAND")
 	if cmd == "" {
-		printf("Hi %s! You've successfully authenticated, but Gogs does not provide shell access.\n", user.Name)
+		fmt.Printf("Hi %s! You've successfully authenticated, but Gogs does not provide shell access.\n", user.Name)
 		return
 	}
 

From 3c67318d8fcc6f61d766496a092c4be688fe8e75 Mon Sep 17 00:00:00 2001
From: Unknown <joe2010xtmf@163.com>
Date: Wed, 12 Mar 2014 22:27:11 -0400
Subject: [PATCH 2/2] Add GetRepositoryByName and GetRepositoryById

---
 models/repo.go | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/models/repo.go b/models/repo.go
index 31c2ae6361..c790dc90a6 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -49,6 +49,7 @@ var (
 
 var (
 	ErrRepoAlreadyExist = errors.New("Repository already exist")
+	ErrRepoNotExist     = errors.New("Repository does not exist")
 )
 
 func init() {
@@ -225,6 +226,30 @@ func initRepository(f string, user *User, repo *Repository, initReadme bool, rep
 	return nil
 }
 
+func GetRepositoryByName(user *User, repoName string) (*Repository, error) {
+	repo := &Repository{
+		OwnerId:   user.Id,
+		LowerName: strings.ToLower(repoName),
+	}
+	has, err := orm.Get(repo)
+	if err != nil {
+		return nil, err
+	} else if !has {
+		return nil, ErrRepoNotExist
+	}
+	return repo, err
+}
+
+func GetRepositoryById(id int64) (repo *Repository, err error) {
+	has, err := orm.Id(id).Get(repo)
+	if err != nil {
+		return nil, err
+	} else if !has {
+		return nil, ErrRepoNotExist
+	}
+	return repo, err
+}
+
 // GetRepositories returns the list of repositories of given user.
 func GetRepositories(user *User) ([]Repository, error) {
 	repos := make([]Repository, 0, 10)