@@ -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) | |||
##### Current version: 0.8.10 | |||
##### Current version: 0.8.11 | |||
| Web | UI | Preview | | |||
|:-------------:|:-------:|:-------:| |
@@ -57,6 +57,8 @@ DISABLE_SSH = false | |||
; Whether use builtin SSH server or not. | |||
START_SSH_SERVER = false | |||
SSH_PORT = 22 | |||
; Root path of SSH directory | |||
SSH_ROOT_PATH = | |||
; Disable CDN even in "prod" mode | |||
OFFLINE_MODE = false | |||
DISABLE_ROUTER_LOG = false |
@@ -17,7 +17,7 @@ import ( | |||
"github.com/gogits/gogs/modules/setting" | |||
) | |||
const APP_VER = "0.8.10.1219" | |||
const APP_VER = "0.8.11.1219" | |||
func init() { | |||
runtime.GOMAXPROCS(runtime.NumCPU()) |
@@ -33,24 +33,6 @@ const ( | |||
) | |||
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 | |||
@@ -233,7 +215,7 @@ func saveAuthorizedKeyFile(keys ...*PublicKey) error { | |||
sshOpLocker.Lock() | |||
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) | |||
if err != nil { | |||
return err | |||
@@ -449,8 +431,8 @@ func deletePublicKey(e *xorm.Session, keyID int64) error { | |||
return nil | |||
} | |||
fpath := filepath.Join(SSHPath, "authorized_keys") | |||
tmpPath := filepath.Join(SSHPath, "authorized_keys.tmp") | |||
fpath := filepath.Join(setting.SSHRootPath, "authorized_keys") | |||
tmpPath := filepath.Join(setting.SSHRootPath, "authorized_keys.tmp") | |||
if err = rewriteAuthorizedKeys(key, fpath, tmpPath); err != nil { | |||
return err | |||
} else if err = os.Remove(fpath); err != nil { | |||
@@ -492,7 +474,7 @@ func RewriteAllPublicKeys() error { | |||
sshOpLocker.Lock() | |||
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) | |||
if err != nil { | |||
return err | |||
@@ -508,7 +490,7 @@ func RewriteAllPublicKeys() error { | |||
return err | |||
} | |||
fpath := filepath.Join(SSHPath, "authorized_keys") | |||
fpath := filepath.Join(setting.SSHRootPath, "authorized_keys") | |||
if com.IsExist(fpath) { | |||
if err = os.Remove(fpath); err != nil { | |||
return err |
@@ -64,6 +64,7 @@ var ( | |||
StartSSHServer bool | |||
SSHDomain string | |||
SSHPort int | |||
SSHRootPath string | |||
OfflineMode bool | |||
DisableRouterLog bool | |||
CertFile, KeyFile string | |||
@@ -273,10 +274,16 @@ func NewContext() { | |||
log.Fatal(4, "Fail to load custom conf '%s': %v", CustomConf, err) | |||
} | |||
} 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 | |||
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")) | |||
forcePathSeparator(LogRootPath) | |||
@@ -290,7 +297,7 @@ func NewContext() { | |||
// Check if has app suburl. | |||
url, err := url.Parse(AppUrl) | |||
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, "/") | |||
@@ -312,6 +319,10 @@ func NewContext() { | |||
} | |||
SSHDomain = sec.Key("SSH_DOMAIN").MustString(Domain) | |||
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() | |||
DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool() | |||
StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(workDir) | |||
@@ -368,12 +379,6 @@ func NewContext() { | |||
} | |||
// 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") | |||
RepoRootPath = sec.Key("ROOT").MustString(path.Join(homeDir, "gogs-repositories")) | |||
forcePathSeparator(RepoRootPath) |
@@ -1 +1 @@ | |||
0.8.10.1219 | |||
0.8.11.1219 |