fix #1436
This commit is contained in:
parent
3bcdb3855c
commit
53eb37d529
7 changed files with 241 additions and 252 deletions
|
@ -3,7 +3,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra
|
||||||
|
|
||||||
![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true)
|
![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true)
|
||||||
|
|
||||||
##### Current version: 0.8.10
|
##### Current version: 0.8.11
|
||||||
|
|
||||||
| Web | UI | Preview |
|
| Web | UI | Preview |
|
||||||
|:-------------:|:-------:|:-------:|
|
|:-------------:|:-------:|:-------:|
|
||||||
|
|
|
@ -57,6 +57,8 @@ DISABLE_SSH = false
|
||||||
; Whether use builtin SSH server or not.
|
; Whether use builtin SSH server or not.
|
||||||
START_SSH_SERVER = false
|
START_SSH_SERVER = false
|
||||||
SSH_PORT = 22
|
SSH_PORT = 22
|
||||||
|
; Root path of SSH directory
|
||||||
|
SSH_ROOT_PATH =
|
||||||
; Disable CDN even in "prod" mode
|
; Disable CDN even in "prod" mode
|
||||||
OFFLINE_MODE = false
|
OFFLINE_MODE = false
|
||||||
DISABLE_ROUTER_LOG = false
|
DISABLE_ROUTER_LOG = false
|
||||||
|
|
2
gogs.go
2
gogs.go
|
@ -17,7 +17,7 @@ import (
|
||||||
"github.com/gogits/gogs/modules/setting"
|
"github.com/gogits/gogs/modules/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
const APP_VER = "0.8.10.1219"
|
const APP_VER = "0.8.11.1219"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||||
|
|
|
@ -33,24 +33,6 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
var sshOpLocker = sync.Mutex{}
|
var sshOpLocker = sync.Mutex{}
|
||||||
var SSHPath string // SSH directory.
|
|
||||||
|
|
||||||
// homeDir returns the home directory of current user.
|
|
||||||
func homeDir() string {
|
|
||||||
home, err := com.HomeDir()
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(4, "Fail to get home directory: %v", err)
|
|
||||||
}
|
|
||||||
return home
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
// Determine and create .ssh path.
|
|
||||||
SSHPath = filepath.Join(homeDir(), ".ssh")
|
|
||||||
if err := os.MkdirAll(SSHPath, 0700); err != nil {
|
|
||||||
log.Fatal(4, "fail to create '%s': %v", SSHPath, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type KeyType int
|
type KeyType int
|
||||||
|
|
||||||
|
@ -233,7 +215,7 @@ func saveAuthorizedKeyFile(keys ...*PublicKey) error {
|
||||||
sshOpLocker.Lock()
|
sshOpLocker.Lock()
|
||||||
defer sshOpLocker.Unlock()
|
defer sshOpLocker.Unlock()
|
||||||
|
|
||||||
fpath := filepath.Join(SSHPath, "authorized_keys")
|
fpath := filepath.Join(setting.SSHRootPath, "authorized_keys")
|
||||||
f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600)
|
f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -449,8 +431,8 @@ func deletePublicKey(e *xorm.Session, keyID int64) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
fpath := filepath.Join(SSHPath, "authorized_keys")
|
fpath := filepath.Join(setting.SSHRootPath, "authorized_keys")
|
||||||
tmpPath := filepath.Join(SSHPath, "authorized_keys.tmp")
|
tmpPath := filepath.Join(setting.SSHRootPath, "authorized_keys.tmp")
|
||||||
if err = rewriteAuthorizedKeys(key, fpath, tmpPath); err != nil {
|
if err = rewriteAuthorizedKeys(key, fpath, tmpPath); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if err = os.Remove(fpath); err != nil {
|
} else if err = os.Remove(fpath); err != nil {
|
||||||
|
@ -492,7 +474,7 @@ func RewriteAllPublicKeys() error {
|
||||||
sshOpLocker.Lock()
|
sshOpLocker.Lock()
|
||||||
defer sshOpLocker.Unlock()
|
defer sshOpLocker.Unlock()
|
||||||
|
|
||||||
tmpPath := filepath.Join(SSHPath, "authorized_keys.tmp")
|
tmpPath := filepath.Join(setting.SSHRootPath, "authorized_keys.tmp")
|
||||||
f, err := os.OpenFile(tmpPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0600)
|
f, err := os.OpenFile(tmpPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0600)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -508,7 +490,7 @@ func RewriteAllPublicKeys() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
fpath := filepath.Join(SSHPath, "authorized_keys")
|
fpath := filepath.Join(setting.SSHRootPath, "authorized_keys")
|
||||||
if com.IsExist(fpath) {
|
if com.IsExist(fpath) {
|
||||||
if err = os.Remove(fpath); err != nil {
|
if err = os.Remove(fpath); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -64,6 +64,7 @@ var (
|
||||||
StartSSHServer bool
|
StartSSHServer bool
|
||||||
SSHDomain string
|
SSHDomain string
|
||||||
SSHPort int
|
SSHPort int
|
||||||
|
SSHRootPath string
|
||||||
OfflineMode bool
|
OfflineMode bool
|
||||||
DisableRouterLog bool
|
DisableRouterLog bool
|
||||||
CertFile, KeyFile string
|
CertFile, KeyFile string
|
||||||
|
@ -273,10 +274,16 @@ func NewContext() {
|
||||||
log.Fatal(4, "Fail to load custom conf '%s': %v", CustomConf, err)
|
log.Fatal(4, "Fail to load custom conf '%s': %v", CustomConf, err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Warn("Custom config (%s) not found, ignore this if you're running first time", CustomConf)
|
log.Warn("Custom config '%s' not found, ignore this if you're running first time", CustomConf)
|
||||||
}
|
}
|
||||||
Cfg.NameMapper = ini.AllCapsUnderscore
|
Cfg.NameMapper = ini.AllCapsUnderscore
|
||||||
|
|
||||||
|
homeDir, err := com.HomeDir()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(4, "Fail to get home directory: %v", err)
|
||||||
|
}
|
||||||
|
homeDir = strings.Replace(homeDir, "\\", "/", -1)
|
||||||
|
|
||||||
LogRootPath = Cfg.Section("log").Key("ROOT_PATH").MustString(path.Join(workDir, "log"))
|
LogRootPath = Cfg.Section("log").Key("ROOT_PATH").MustString(path.Join(workDir, "log"))
|
||||||
forcePathSeparator(LogRootPath)
|
forcePathSeparator(LogRootPath)
|
||||||
|
|
||||||
|
@ -290,7 +297,7 @@ func NewContext() {
|
||||||
// Check if has app suburl.
|
// Check if has app suburl.
|
||||||
url, err := url.Parse(AppUrl)
|
url, err := url.Parse(AppUrl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(4, "Invalid ROOT_URL(%s): %s", AppUrl, err)
|
log.Fatal(4, "Invalid ROOT_URL '%s': %s", AppUrl, err)
|
||||||
}
|
}
|
||||||
AppSubUrl = strings.TrimSuffix(url.Path, "/")
|
AppSubUrl = strings.TrimSuffix(url.Path, "/")
|
||||||
|
|
||||||
|
@ -312,6 +319,10 @@ func NewContext() {
|
||||||
}
|
}
|
||||||
SSHDomain = sec.Key("SSH_DOMAIN").MustString(Domain)
|
SSHDomain = sec.Key("SSH_DOMAIN").MustString(Domain)
|
||||||
SSHPort = sec.Key("SSH_PORT").MustInt(22)
|
SSHPort = sec.Key("SSH_PORT").MustInt(22)
|
||||||
|
SSHRootPath = sec.Key("SSH_ROOT_PATH").MustString(path.Join(homeDir, ".ssh"))
|
||||||
|
if err := os.MkdirAll(SSHRootPath, 0700); err != nil {
|
||||||
|
log.Fatal(4, "Fail to create '%s': %v", SSHRootPath, err)
|
||||||
|
}
|
||||||
OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
|
OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
|
||||||
DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
|
DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
|
||||||
StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(workDir)
|
StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(workDir)
|
||||||
|
@ -368,12 +379,6 @@ func NewContext() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determine and create root git repository path.
|
// Determine and create root git repository path.
|
||||||
homeDir, err := com.HomeDir()
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(4, "Fail to get home directory: %v", err)
|
|
||||||
}
|
|
||||||
homeDir = strings.Replace(homeDir, "\\", "/", -1)
|
|
||||||
|
|
||||||
sec = Cfg.Section("repository")
|
sec = Cfg.Section("repository")
|
||||||
RepoRootPath = sec.Key("ROOT").MustString(path.Join(homeDir, "gogs-repositories"))
|
RepoRootPath = sec.Key("ROOT").MustString(path.Join(homeDir, "gogs-repositories"))
|
||||||
forcePathSeparator(RepoRootPath)
|
forcePathSeparator(RepoRootPath)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
0.8.10.1219
|
0.8.11.1219
|
Reference in a new issue