Build script

This commit is contained in:
Jakob Borg
2013-12-22 00:16:49 +01:00
parent 7d235a454d
commit 8e65d36691
3 changed files with 25 additions and 4 deletions

12
main.go
View File

@@ -39,6 +39,7 @@ type DebugOptions struct {
}
var opts Options
var Version string
const (
confDirName = ".syncthing"
@@ -67,9 +68,11 @@ func main() {
opts.ConfDir = strings.Replace(opts.ConfDir, "~", getHomeDir(), 1)
}
infoln("Version", Version)
// Ensure that our home directory exists and that we have a certificate and key.
ensureDir(ConfDir)
ensureDir(ConfDir, 0700)
cert, err := loadCert(ConfDir)
if err != nil {
newCertificate(ConfDir)
@@ -120,6 +123,7 @@ func main() {
nodeAddrs[nodeID] = addrs
}
ensureDir(dir, -1)
m := NewModel(dir)
// Walk the repository and update the local model before establishing any
@@ -304,13 +308,13 @@ func loadIndex(m *Model) {
m.SeedIndex(idx)
}
func ensureDir(dir string) {
func ensureDir(dir string, mode int) {
fi, err := os.Stat(dir)
if os.IsNotExist(err) {
err := os.MkdirAll(dir, 0700)
fatalErr(err)
} else if fi.Mode()&0077 != 0 {
err := os.Chmod(dir, 0700)
} else if mode >= 0 && err == nil && int(fi.Mode()&0777) != mode {
err := os.Chmod(dir, os.FileMode(mode))
fatalErr(err)
}
}