mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 01:34:27 +00:00 
			
		
		
		
	Put default config into binary
This commit is contained in:
		@@ -14,6 +14,7 @@ watch_dirs = [
 | 
				
			|||||||
watch_exts = [".go", ".ini"]
 | 
					watch_exts = [".go", ".ini"]
 | 
				
			||||||
build_delay = 1500
 | 
					build_delay = 1500
 | 
				
			||||||
cmds = [
 | 
					cmds = [
 | 
				
			||||||
 | 
						#["go-bindata", "-o=modules/bindata/bindata.go", "-ignore=\\.DS_Store|README", "-pkg=bindata", "conf/..."],
 | 
				
			||||||
	["go", "install", "-tags", "sqlite cert"],# redis memcache
 | 
						["go", "install", "-tags", "sqlite cert"],# redis memcache
 | 
				
			||||||
	["go", "build", "-tags", "sqlite cert"],
 | 
						["go", "build", "-tags", "sqlite cert"],
 | 
				
			||||||
	["./gogs", "web"]
 | 
						["./gogs", "web"]
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								cmd/web.go
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								cmd/web.go
									
									
									
									
									
								
							@@ -34,6 +34,7 @@ import (
 | 
				
			|||||||
	"github.com/gogits/gogs/modules/auth/apiv1"
 | 
						"github.com/gogits/gogs/modules/auth/apiv1"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/avatar"
 | 
						"github.com/gogits/gogs/modules/avatar"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/base"
 | 
						"github.com/gogits/gogs/modules/base"
 | 
				
			||||||
 | 
						"github.com/gogits/gogs/modules/bindata"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/git"
 | 
						"github.com/gogits/gogs/modules/git"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/log"
 | 
						"github.com/gogits/gogs/modules/log"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/middleware"
 | 
						"github.com/gogits/gogs/modules/middleware"
 | 
				
			||||||
@@ -82,7 +83,7 @@ func checkVersion() {
 | 
				
			|||||||
		{"github.com/macaron-contrib/binding", binding.Version, "0.0.6"},
 | 
							{"github.com/macaron-contrib/binding", binding.Version, "0.0.6"},
 | 
				
			||||||
		{"github.com/macaron-contrib/cache", cache.Version, "0.0.7"},
 | 
							{"github.com/macaron-contrib/cache", cache.Version, "0.0.7"},
 | 
				
			||||||
		{"github.com/macaron-contrib/csrf", csrf.Version, "0.0.3"},
 | 
							{"github.com/macaron-contrib/csrf", csrf.Version, "0.0.3"},
 | 
				
			||||||
		{"github.com/macaron-contrib/i18n", i18n.Version, "0.0.5"},
 | 
							{"github.com/macaron-contrib/i18n", i18n.Version, "0.0.7"},
 | 
				
			||||||
		{"github.com/macaron-contrib/session", session.Version, "0.1.6"},
 | 
							{"github.com/macaron-contrib/session", session.Version, "0.1.6"},
 | 
				
			||||||
		{"gopkg.in/ini.v1", ini.Version, "1.2.0"},
 | 
							{"gopkg.in/ini.v1", ini.Version, "1.2.0"},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -123,9 +124,18 @@ func newMacaron() *macaron.Macaron {
 | 
				
			|||||||
		Funcs:      []template.FuncMap{base.TemplateFuncs},
 | 
							Funcs:      []template.FuncMap{base.TemplateFuncs},
 | 
				
			||||||
		IndentJSON: macaron.Env != macaron.PROD,
 | 
							IndentJSON: macaron.Env != macaron.PROD,
 | 
				
			||||||
	}))
 | 
						}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						localeNames, err := bindata.AssetDir("conf/locale")
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							log.Fatal(4, "Fail to list locale files: %v", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						localFiles := make(map[string][]byte)
 | 
				
			||||||
 | 
						for _, name := range localeNames {
 | 
				
			||||||
 | 
							localFiles[name] = bindata.MustAsset("conf/locale/" + name)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	m.Use(i18n.I18n(i18n.Options{
 | 
						m.Use(i18n.I18n(i18n.Options{
 | 
				
			||||||
		SubURL:          setting.AppSubUrl,
 | 
							SubURL:          setting.AppSubUrl,
 | 
				
			||||||
		Directory:       path.Join(setting.ConfRootPath, "locale"),
 | 
							Files:           localFiles,
 | 
				
			||||||
		CustomDirectory: path.Join(setting.CustomPath, "conf/locale"),
 | 
							CustomDirectory: path.Join(setting.CustomPath, "conf/locale"),
 | 
				
			||||||
		Langs:           setting.Langs,
 | 
							Langs:           setting.Langs,
 | 
				
			||||||
		Names:           setting.Names,
 | 
							Names:           setting.Names,
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										7
									
								
								conf/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								conf/README
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					Execute following command in ROOT directory when anything is changed:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ go-bindata -o=modules/bindata/bindata.go -ignore="\\.DS_Store|README" -pkg=bindata conf/...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Add -debug flag to make life easier in development(somehow isn't working):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ go-bindata -debug -o=modules/bindata/bindata.go -ignore="\\.DS_Store|README" -pkg=bindata conf/...
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							@@ -23,6 +23,7 @@ import (
 | 
				
			|||||||
	"github.com/Unknwon/com"
 | 
						"github.com/Unknwon/com"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/gogits/gogs/modules/base"
 | 
						"github.com/gogits/gogs/modules/base"
 | 
				
			||||||
 | 
						"github.com/gogits/gogs/modules/bindata"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/git"
 | 
						"github.com/gogits/gogs/modules/git"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/log"
 | 
						"github.com/gogits/gogs/modules/log"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/process"
 | 
						"github.com/gogits/gogs/modules/process"
 | 
				
			||||||
@@ -55,7 +56,7 @@ func LoadRepoConfig() {
 | 
				
			|||||||
	types := []string{"gitignore", "license"}
 | 
						types := []string{"gitignore", "license"}
 | 
				
			||||||
	typeFiles := make([][]string, 2)
 | 
						typeFiles := make([][]string, 2)
 | 
				
			||||||
	for i, t := range types {
 | 
						for i, t := range types {
 | 
				
			||||||
		files, err := com.StatDir(path.Join("conf", t))
 | 
							files, err := bindata.AssetDir("conf/" + t)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			log.Fatal(4, "Fail to get %s files: %v", t, err)
 | 
								log.Fatal(4, "Fail to get %s files: %v", t, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -365,17 +366,6 @@ func MigrateRepository(u *User, name, desc string, private, mirror bool, url str
 | 
				
			|||||||
	return repo, UpdateRepository(repo, false)
 | 
						return repo, UpdateRepository(repo, false)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// extractGitBareZip extracts git-bare.zip to repository path.
 | 
					 | 
				
			||||||
func extractGitBareZip(repoPath string) error {
 | 
					 | 
				
			||||||
	z, err := zip.Open(path.Join(setting.ConfRootPath, "content/git-bare.zip"))
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	defer z.Close()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return z.ExtractTo(repoPath)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// initRepoCommit temporarily changes with work directory.
 | 
					// initRepoCommit temporarily changes with work directory.
 | 
				
			||||||
func initRepoCommit(tmpPath string, sig *git.Signature) (err error) {
 | 
					func initRepoCommit(tmpPath string, sig *git.Signature) (err error) {
 | 
				
			||||||
	var stderr string
 | 
						var stderr string
 | 
				
			||||||
@@ -409,9 +399,13 @@ func createUpdateHook(repoPath string) error {
 | 
				
			|||||||
func initRepository(e Engine, f string, u *User, repo *Repository, initReadme bool, repoLang, license string) error {
 | 
					func initRepository(e Engine, f string, u *User, repo *Repository, initReadme bool, repoLang, license string) error {
 | 
				
			||||||
	repoPath := RepoPath(u.Name, repo.Name)
 | 
						repoPath := RepoPath(u.Name, repo.Name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Create bare new repository.
 | 
						// Init bare new repository.
 | 
				
			||||||
	if err := extractGitBareZip(repoPath); err != nil {
 | 
						os.MkdirAll(repoPath, os.ModePerm)
 | 
				
			||||||
		return err
 | 
						_, stderr, err := process.ExecDir(-1, repoPath,
 | 
				
			||||||
 | 
							fmt.Sprintf("initRepository(git init --bare): %s", repoPath),
 | 
				
			||||||
 | 
							"git", "init", "--bare")
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return errors.New("initRepository(git init --bare): " + stderr)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err := createUpdateHook(repoPath); err != nil {
 | 
						if err := createUpdateHook(repoPath); err != nil {
 | 
				
			||||||
@@ -434,7 +428,7 @@ func initRepository(e Engine, f string, u *User, repo *Repository, initReadme bo
 | 
				
			|||||||
	tmpDir := filepath.Join(os.TempDir(), com.ToStr(time.Now().Nanosecond()))
 | 
						tmpDir := filepath.Join(os.TempDir(), com.ToStr(time.Now().Nanosecond()))
 | 
				
			||||||
	os.MkdirAll(tmpDir, os.ModePerm)
 | 
						os.MkdirAll(tmpDir, os.ModePerm)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_, stderr, err := process.Exec(
 | 
						_, stderr, err = process.Exec(
 | 
				
			||||||
		fmt.Sprintf("initRepository(git clone): %s", repoPath),
 | 
							fmt.Sprintf("initRepository(git clone): %s", repoPath),
 | 
				
			||||||
		"git", "clone", repoPath, tmpDir)
 | 
							"git", "clone", repoPath, tmpDir)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
@@ -451,43 +445,36 @@ func initRepository(e Engine, f string, u *User, repo *Repository, initReadme bo
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// FIXME: following two can be merged.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// .gitignore
 | 
						// .gitignore
 | 
				
			||||||
	filePath := "conf/gitignore/" + repoLang
 | 
						// Copy custom file when available.
 | 
				
			||||||
	if com.IsFile(filePath) {
 | 
						customPath := path.Join(setting.CustomPath, "conf/gitignore", repoLang)
 | 
				
			||||||
		targetPath := path.Join(tmpDir, fileName["gitign"])
 | 
						targetPath := path.Join(tmpDir, fileName["gitign"])
 | 
				
			||||||
		if com.IsFile(filePath) {
 | 
						if com.IsFile(customPath) {
 | 
				
			||||||
			if err = com.Copy(filePath, targetPath); err != nil {
 | 
							if err := com.Copy(customPath, targetPath); err != nil {
 | 
				
			||||||
				return err
 | 
								return fmt.Errorf("copy gitignore: %v", err)
 | 
				
			||||||
			}
 | 
							}
 | 
				
			||||||
		} else {
 | 
						} else if com.IsSliceContainsStr(Gitignores, repoLang) {
 | 
				
			||||||
			// Check custom files.
 | 
							if err = ioutil.WriteFile(targetPath,
 | 
				
			||||||
			filePath = path.Join(setting.CustomPath, "conf/gitignore", repoLang)
 | 
								bindata.MustAsset(path.Join("conf/gitignore", repoLang)), os.ModePerm); err != nil {
 | 
				
			||||||
			if com.IsFile(filePath) {
 | 
								return fmt.Errorf("generate gitignore: %v", err)
 | 
				
			||||||
				if err := com.Copy(filePath, targetPath); err != nil {
 | 
					 | 
				
			||||||
					return err
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		delete(fileName, "gitign")
 | 
							delete(fileName, "gitign")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// LICENSE
 | 
						// LICENSE
 | 
				
			||||||
	filePath = "conf/license/" + license
 | 
						customPath = path.Join(setting.CustomPath, "conf/license", license)
 | 
				
			||||||
	if com.IsFile(filePath) {
 | 
						targetPath = path.Join(tmpDir, fileName["license"])
 | 
				
			||||||
		targetPath := path.Join(tmpDir, fileName["license"])
 | 
						if com.IsFile(customPath) {
 | 
				
			||||||
		if com.IsFile(filePath) {
 | 
							if err = com.Copy(customPath, targetPath); err != nil {
 | 
				
			||||||
			if err = com.Copy(filePath, targetPath); err != nil {
 | 
								return fmt.Errorf("copy license: %v", err)
 | 
				
			||||||
				return err
 | 
							}
 | 
				
			||||||
			}
 | 
						} else if com.IsSliceContainsStr(Licenses, license) {
 | 
				
			||||||
		} else {
 | 
							if err = ioutil.WriteFile(targetPath,
 | 
				
			||||||
			// Check custom files.
 | 
								bindata.MustAsset(path.Join("conf/license", license)), os.ModePerm); err != nil {
 | 
				
			||||||
			filePath = path.Join(setting.CustomPath, "conf/license", license)
 | 
								return fmt.Errorf("generate license: %v", err)
 | 
				
			||||||
			if com.IsFile(filePath) {
 | 
					 | 
				
			||||||
				if err := com.Copy(filePath, targetPath); err != nil {
 | 
					 | 
				
			||||||
					return err
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		delete(fileName, "license")
 | 
							delete(fileName, "license")
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1041
									
								
								modules/bindata/bindata.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1041
									
								
								modules/bindata/bindata.go
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -20,6 +20,7 @@ import (
 | 
				
			|||||||
	"github.com/macaron-contrib/session"
 | 
						"github.com/macaron-contrib/session"
 | 
				
			||||||
	"gopkg.in/ini.v1"
 | 
						"gopkg.in/ini.v1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/gogits/gogs/modules/bindata"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/log"
 | 
						"github.com/gogits/gogs/modules/log"
 | 
				
			||||||
	// "github.com/gogits/gogs/modules/ssh"
 | 
						// "github.com/gogits/gogs/modules/ssh"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -131,7 +132,6 @@ var (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// Global setting objects.
 | 
						// Global setting objects.
 | 
				
			||||||
	Cfg          *ini.File
 | 
						Cfg          *ini.File
 | 
				
			||||||
	ConfRootPath string
 | 
					 | 
				
			||||||
	CustomPath   string // Custom directory path.
 | 
						CustomPath   string // Custom directory path.
 | 
				
			||||||
	CustomConf   string
 | 
						CustomConf   string
 | 
				
			||||||
	ProdMode     bool
 | 
						ProdMode     bool
 | 
				
			||||||
@@ -165,8 +165,7 @@ func WorkDir() (string, error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func forcePathSeparator(path string) {
 | 
					func forcePathSeparator(path string) {
 | 
				
			||||||
	if strings.Contains(path, "\\") {
 | 
						if strings.Contains(path, "\\") {
 | 
				
			||||||
		fmt.Println("Do not use '\\' or '\\\\' in paths, instead, please use '/' in all places")
 | 
							log.Fatal(4, "Do not use '\\' or '\\\\' in paths, instead, please use '/' in all places")
 | 
				
			||||||
		os.Exit(1)
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -177,9 +176,8 @@ func NewConfigContext() {
 | 
				
			|||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		log.Fatal(4, "Fail to get work directory: %v", err)
 | 
							log.Fatal(4, "Fail to get work directory: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ConfRootPath = path.Join(workDir, "conf")
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Cfg, err = ini.Load(path.Join(workDir, "conf/app.ini"))
 | 
						Cfg, err = ini.Load(bindata.MustAsset("conf/app.ini"))
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		log.Fatal(4, "Fail to parse 'conf/app.ini': %v", err)
 | 
							log.Fatal(4, "Fail to parse 'conf/app.ini': %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user