Makefile 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. compile: daemon-compile-x64-lin
  2. daemon-compile-armhf:
  3. GOARCH=arm GOARM=6 go build -o OliveTin.armhf github.com/jamesread/OliveTin/cmd/OliveTin
  4. daemon-compile-x64-lin:
  5. GOOS=linux go build -o OliveTin github.com/jamesread/OliveTin/cmd/OliveTin
  6. daemon-compile-x64-win:
  7. GOOS=windows GOARCH=amd64 go build -o OliveTin.exe github.com/jamesread/OliveTin/cmd/OliveTin
  8. daemon-compile: daemon-compile-armhf daemon-compile-x64-lin daemon-compile-x64-win
  9. daemon-codestyle:
  10. go fmt ./...
  11. go vet ./...
  12. golint ./...
  13. gocyclo -over 4 cmd internal
  14. daemon-unittests:
  15. mkdir -p reports
  16. go test ./... -coverprofile reports/unittests.out
  17. go tool cover -html=reports/unittests.out -o reports/unittests.html
  18. grpc:
  19. protoc -I.:$(GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis/ --go_out=. --go-grpc_out=. --grpc-gateway_out=. OliveTin.proto
  20. # protoc --go-grpc_out=grpc:gen/grpc/ OliveTin.proto
  21. # protoc -I.:$(GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis/ --grpc-gateway_out=gen/grpc --grpc-gateway_opt paths=source_relative OliveTin.proto
  22. podman-image:
  23. buildah bud -t olivetin
  24. podman-container:
  25. podman kill olivetin
  26. podman rm olivetin
  27. podman create --name olivetin -p 1337:1337 -p 1338:1338 -p 1339:1339 -v /etc/OliveTin/:/config:ro olivetin
  28. podman start olivetin
  29. devrun: compile
  30. killall OliveTin || true
  31. ./OliveTin &
  32. devcontainer: compile podman-image podman-container
  33. webui-codestyle:
  34. cd webui && eslint main.js js/*
  35. cd webui && stylelint style.css
  36. release-common:
  37. rm -rf webui/node_modules/
  38. rm -rf releases/
  39. mkdir -p releases/common/
  40. cp -r webui releases/common/
  41. cp -r var/config.yaml releases/common/
  42. cp OliveTin.service releases/common/
  43. cp README.md releases/common/
  44. cp Dockerfile releases/common/
  45. release-bin-rpi: daemon-compile-armhf release-common
  46. mkdir -p releases/rpi/
  47. cd releases/common && cp -r * ../rpi/
  48. cp OliveTin.armhf releases/rpi/OliveTin
  49. cd releases/rpi && tar cavf "../OliveTin-armhf-`date +'%Y-%m-%d'`.`git rev-parse --short HEAD`.tgz" .
  50. release-bin-x64-lin: daemon-compile-x64-lin release-common
  51. mkdir -p releases/x64-lin/
  52. cd releases/common && cp -r * ../x64-lin/
  53. cp OliveTin releases/x64-lin/
  54. cd releases/x64-lin && tar cavf "../OliveTin-x64-linux-`date +'%Y-%m-%d'`.`git rev-parse --short HEAD`.tgz" .
  55. release-bin-x64-win: daemon-compile-x64-win release-common
  56. mkdir -p releases/x64-win/
  57. cd releases/common && cp -r * ../x64-win/
  58. cp OliveTin.exe releases/x64-win/
  59. cd releases/x64-lin && zip -r "../OliveTin-x64-windows-`date +'%Y-%m-%d'`.`git rev-parse --short HEAD`.zip" .
  60. releases: release-bin-rpi release-bin-x64-lin release-bin-x64-win
  61. .PHONY: grpc release-common