mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-23 03:18:59 +00:00
Change default config directory (fixes #145)
This commit is contained in:
parent
5528db9693
commit
90d0896848
@ -109,6 +109,22 @@ func main() {
|
|||||||
|
|
||||||
confDir = expandTilde(confDir)
|
confDir = expandTilde(confDir)
|
||||||
|
|
||||||
|
if _, err := os.Stat(confDir); err != nil && confDir == getDefaultConfDir() {
|
||||||
|
// We are supposed to use the default configuration directory. It
|
||||||
|
// doesn't exist. In the past our default has been ~/.syncthing, so if
|
||||||
|
// that directory exists we move it to the new default location and
|
||||||
|
// continue. We don't much care if this fails at this point, we will
|
||||||
|
// be checking that later.
|
||||||
|
|
||||||
|
oldDefault := expandTilde("~/.syncthing")
|
||||||
|
if _, err := os.Stat(oldDefault); err == nil {
|
||||||
|
os.MkdirAll(filepath.Dir(confDir), 0700)
|
||||||
|
if err := os.Rename(oldDefault, confDir); err == nil {
|
||||||
|
infoln("Moved config dir", oldDefault, "to", confDir)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure that our home directory exists and that we have a certificate and key.
|
// Ensure that our home directory exists and that we have a certificate and key.
|
||||||
|
|
||||||
ensureDir(confDir, 0700)
|
ensureDir(confDir, 0700)
|
||||||
@ -560,39 +576,51 @@ func ensureDir(dir string, mode int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getDefaultConfDir() string {
|
||||||
|
switch runtime.GOOS {
|
||||||
|
case "windows":
|
||||||
|
return filepath.Join(os.Getenv("AppData"), "Syncthing")
|
||||||
|
case "darwin":
|
||||||
|
return expandTilde("~/Library/Application Support/Syncthing")
|
||||||
|
default:
|
||||||
|
if xdgCfg := os.Getenv("XDG_CONFIG_HOME"); xdgCfg != "" {
|
||||||
|
return xdgCfg + "/syncthing"
|
||||||
|
} else {
|
||||||
|
return expandTilde("~/.config/syncthing")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func expandTilde(p string) string {
|
func expandTilde(p string) string {
|
||||||
if runtime.GOOS == "windows" {
|
if !strings.HasPrefix(p, "~/") {
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
if strings.HasPrefix(p, "~/") {
|
switch runtime.GOOS {
|
||||||
return strings.Replace(p, "~", getUnixHomeDir(), 1)
|
case "windows":
|
||||||
}
|
return p
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
func getUnixHomeDir() string {
|
default:
|
||||||
home := os.Getenv("HOME")
|
return filepath.Join(getHomeDir(), p[2:])
|
||||||
if home == "" {
|
|
||||||
fatalln("No home directory?")
|
|
||||||
}
|
}
|
||||||
return home
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getHomeDir() string {
|
func getHomeDir() string {
|
||||||
if runtime.GOOS == "windows" {
|
var home string
|
||||||
home := os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH")
|
|
||||||
if home == "" {
|
|
||||||
home = os.Getenv("USERPROFILE")
|
|
||||||
}
|
|
||||||
return home
|
|
||||||
}
|
|
||||||
return getUnixHomeDir()
|
|
||||||
}
|
|
||||||
|
|
||||||
func getDefaultConfDir() string {
|
switch runtime.GOOS {
|
||||||
if runtime.GOOS == "windows" {
|
case "windows":
|
||||||
return filepath.Join(os.Getenv("AppData"), "syncthing")
|
home = os.Getenv("HomeDrive") + os.Getenv("HomePath")
|
||||||
|
if home == "" {
|
||||||
|
home = os.Getenv("UserProfile")
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
home = os.Getenv("HOME")
|
||||||
}
|
}
|
||||||
return expandTilde("~/.syncthing")
|
|
||||||
|
if home == "" {
|
||||||
|
fatalln("No home directory found - set $HOME (or the platform equivalent).")
|
||||||
|
}
|
||||||
|
|
||||||
|
return home
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user