| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- // Copyright 2014 The Gogs Authors. All rights reserved.
 
- // Use of this source code is governed by a MIT-style
 
- // license that can be found in the LICENSE file.
 
- package base
 
- import (
 
- 	"fmt"
 
- 	"os"
 
- 	"os/exec"
 
- 	"path"
 
- 	"path/filepath"
 
- 	"github.com/Unknwon/com"
 
- 	"github.com/Unknwon/goconfig"
 
- 	"github.com/gogits/gogs/modules/log"
 
- )
 
- // Mailer represents a mail service.
 
- type Mailer struct {
 
- 	Name         string
 
- 	Host         string
 
- 	User, Passwd string
 
- }
 
- var (
 
- 	AppVer      string
 
- 	AppName     string
 
- 	Domain      string
 
- 	Cfg         *goconfig.ConfigFile
 
- 	MailService *Mailer
 
- )
 
- func exeDir() (string, error) {
 
- 	file, err := exec.LookPath(os.Args[0])
 
- 	if err != nil {
 
- 		return "", err
 
- 	}
 
- 	p, err := filepath.Abs(file)
 
- 	if err != nil {
 
- 		return "", err
 
- 	}
 
- 	return path.Dir(p), nil
 
- }
 
- func newLogService() {
 
- 	log.NewLogger()
 
- }
 
- func newMailService() {
 
- 	// Check mailer setting.
 
- 	if Cfg.MustBool("mailer", "ENABLED") {
 
- 		MailService = &Mailer{
 
- 			Name:   Cfg.MustValue("mailer", "NAME", AppName),
 
- 			Host:   Cfg.MustValue("mailer", "HOST", "127.0.0.1:25"),
 
- 			User:   Cfg.MustValue("mailer", "USER", "[email protected]"),
 
- 			Passwd: Cfg.MustValue("mailer", "PASSWD", "******"),
 
- 		}
 
- 		log.Info("Mail Service Enabled")
 
- 	}
 
- }
 
- func init() {
 
- 	var err error
 
- 	workDir, err := exeDir()
 
- 	if err != nil {
 
- 		fmt.Printf("Fail to get work directory: %s\n", err)
 
- 		os.Exit(2)
 
- 	}
 
- 	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)
 
- 	}
 
- 	Cfg.BlockMode = false
 
- 	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)
 
- 			os.Exit(2)
 
- 		}
 
- 	}
 
- 	Cfg.BlockMode = false
 
- 	AppName = Cfg.MustValue("", "APP_NAME", "Gogs: Go Git Service")
 
- 	Domain = Cfg.MustValue("server", "DOMAIN")
 
- 	// Extensions.
 
- 	newLogService()
 
- 	newMailService()
 
- }
 
 
  |