diff --git a/models/repo.go b/models/repo.go index 5d28174b0143..869059fa2e57 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 + } + } } }