Browse Source

Build script

Jakob Borg 12 years ago
parent
commit
8e65d36691
3 changed files with 25 additions and 4 deletions
  1. 1 0
      .gitignore
  2. 16 0
      build.sh
  3. 8 4
      main.go

+ 1 - 0
.gitignore

@@ -1 +1,2 @@
 syncthing
+*.tar.gz

+ 16 - 0
build.sh

@@ -0,0 +1,16 @@
+#!/bin/bash
+
+version=$(git describe --always)
+
+for goos in darwin linux freebsd ; do
+	for goarch in amd64 386 ; do
+		export GOOS="$goos"
+		export GOARCH="$goarch"
+		go build -ldflags "-X main.Version $version" \
+		&& mkdir -p "syncthing-$goos-$goarch" \
+		&& mv syncthing "syncthing-$goos-$goarch" \
+		&& cp syncthing.ini "syncthing-$goos-$goarch" \
+		&& tar zcf "syncthing-$goos-$goarch.tar.gz" "syncthing-$goos-$goarch" \
+		&& rm -r  "syncthing-$goos-$goarch"
+	done
+done

+ 8 - 4
main.go

@@ -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)
 	}
 }