build.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. export COPYFILE_DISABLE=true
  3. version=$(git describe --always)
  4. buildDir=dist
  5. if [[ $fast != yes ]] ; then
  6. go get -d
  7. go test ./...
  8. fi
  9. if [[ -z $1 ]] ; then
  10. go build -ldflags "-X main.Version $version"
  11. elif [[ $1 == "embed" ]] ; then
  12. embedder auto gui > auto/gui.files.go \
  13. && go build -ldflags "-X main.Version $version"
  14. elif [[ $1 == "tar" ]] ; then
  15. go build -ldflags "-X main.Version $version" \
  16. && mkdir syncthing-dist \
  17. && cp syncthing README.md LICENSE syncthing-dist \
  18. && tar zcvf syncthing-dist.tar.gz syncthing-dist \
  19. && rm -rf syncthing-dist
  20. elif [[ $1 == "all" ]] ; then
  21. rm -rf "$buildDir"
  22. mkdir -p "$buildDir" || exit 1
  23. export GOARM=7
  24. for os in darwin-amd64 linux-386 linux-amd64 linux-arm freebsd-386 freebsd-amd64 windows-386 windows-amd64 ; do
  25. echo "$os"
  26. export name="syncthing-$os"
  27. export GOOS=${os%-*}
  28. export GOARCH=${os#*-}
  29. go build -ldflags "-X main.Version $version"
  30. mkdir -p "$name"
  31. cp README.md LICENSE "$name"
  32. case $GOOS in
  33. windows)
  34. cp syncthing.exe "$buildDir/$name.exe"
  35. mv syncthing.exe "$name"
  36. zip -qr "$buildDir/$name.zip" "$name"
  37. ;;
  38. *)
  39. cp syncthing "$buildDir/$name"
  40. mv syncthing "$name"
  41. tar zcf "$buildDir/$name.tar.gz" "$name"
  42. ;;
  43. esac
  44. rm -r "$name"
  45. done
  46. fi