From 11f9d738e8a1bce4c35bc5e1c37f5a7d1bcded5c Mon Sep 17 00:00:00 2001
From: Unknown <joe2010xtmf@163.com>
Date: Tue, 3 Jun 2014 21:51:25 -0400
Subject: [PATCH] Fix #237

---
 models/repo.go | 30 ++++++++++++++++++++++++------
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/models/repo.go b/models/repo.go
index 5d28174b0..869059fa2 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -489,22 +489,40 @@ func initRepository(f string, user *User, repo *Repository, initReadme bool, rep
 	// .gitignore
 	if repoLang != "" {
 		filePath := "conf/gitignore/" + repoLang
-		if com.IsFile(filePath) {
-			if err := com.Copy(filePath,
-				filepath.Join(tmpDir, fileName["gitign"])); err != nil {
+		targetPath := path.Join(tmpDir, fileName["gitign"])
+		data, err := bin.Asset(filePath)
+		if err == nil {
+			if err = ioutil.WriteFile(targetPath, data, os.ModePerm); err != nil {
 				return err
 			}
+		} else {
+			// Check custom files.
+			filePath = path.Join(setting.CustomPath, "conf/gitignore", repoLang)
+			if com.IsFile(filePath) {
+				if err := com.Copy(filePath, targetPath); err != nil {
+					return err
+				}
+			}
 		}
 	}
 
 	// LICENSE
 	if license != "" {
 		filePath := "conf/license/" + license
-		if com.IsFile(filePath) {
-			if err := com.Copy(filePath,
-				filepath.Join(tmpDir, fileName["license"])); err != nil {
+		targetPath := path.Join(tmpDir, fileName["license"])
+		data, err := bin.Asset(filePath)
+		if err == nil {
+			if err = ioutil.WriteFile(targetPath, data, os.ModePerm); err != nil {
 				return err
 			}
+		} else {
+			// Check custom files.
+			filePath = path.Join(setting.CustomPath, "conf/license", license)
+			if com.IsFile(filePath) {
+				if err := com.Copy(filePath, targetPath); err != nil {
+					return err
+				}
+			}
 		}
 	}