build-plugins.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. set -euo pipefail
  3. cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")"
  4. PLUGIN_TYPE=$1
  5. PLUGIN_NAME=$2
  6. VERSION=$(git describe --tags --always)
  7. pre(){
  8. mkdir -p _plugins/debian/$PLUGIN_TYPE
  9. if [ $(cat etc/$PLUGIN_TYPE/$PLUGIN_NAME.json | jq -r ".libs") != 'null' ]; then
  10. for lib in $(cat etc/$PLUGIN_TYPE/$PLUGIN_NAME.json | jq -r ".libs[]"); do
  11. go get $lib;
  12. done
  13. fi
  14. }
  15. post(){
  16. if [ -f "etc/$PLUGIN_TYPE/$PLUGIN_NAME.yaml" ]; then
  17. cp etc/$PLUGIN_TYPE/$PLUGIN_NAME.yaml extensions/$PLUGIN_TYPE/$PLUGIN_NAME;
  18. fi
  19. cd extensions/$PLUGIN_TYPE/$PLUGIN_NAME
  20. zip -r ${PLUGIN_NAME}_$(go env GOARCH).zip .
  21. cd -
  22. mv $(find extensions/$PLUGIN_TYPE/$PLUGIN_NAME -name "*.zip") _plugins/debian/$PLUGIN_TYPE
  23. }
  24. build(){
  25. case $PLUGIN_NAME in
  26. influx )
  27. go build -trimpath -modfile extensions.mod --buildmode=plugin -tags plugins -o extensions/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so extensions/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME.go
  28. ;;
  29. tdengine )
  30. if [ "$(uname -m)" = "x86_64" ]; then
  31. wget "https://www.taosdata.com/assets-download/TDengine-client-2.4.0.18-Linux-x64.tar.gz" -O /tmp/TDengine-client-2.4.0.18.tar.gz;
  32. fi;
  33. if [ "$(uname -m)" = "aarch64" ]; then
  34. wget "https://www.taosdata.com/assets-download/TDengine-client-2.4.0.18-Linux-aarch64.tar.gz" -O /tmp/TDengine-client-2.4.0.18.tar.gz;
  35. fi;
  36. tar -zxvf /tmp/TDengine-client-2.4.0.18.tar.gz
  37. cd TDengine-client-2.4.0.18 && ./install_client.sh && cd -
  38. go build -trimpath -modfile extensions.mod --buildmode=plugin -tags plugins -o extensions/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so extensions/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME.go
  39. ;;
  40. labelImage )
  41. git clone -b v2.2.0-rc3 --depth 1 https://github.com/tensorflow/tensorflow.git /tmp/tensorflow;
  42. CGO_CFLAGS=-I/tmp/tensorflow CGO_LDFLAGS=-L$(pwd)/extensions/functions/labelImage/lib go build -trimpath -modfile extensions.mod --buildmode=plugin -o extensions/functions/labelImage/labelImage.so extensions/functions/labelImage/*.go
  43. ;;
  44. * )
  45. go build -trimpath -modfile extensions.mod --buildmode=plugin -o extensions/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so extensions/$PLUGIN_TYPE/$PLUGIN_NAME/*.go
  46. ;;
  47. esac
  48. }
  49. pre
  50. build
  51. post