build-plugins.sh 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. OS=$(sed -n '/^ID=/p' /etc/os-release | sed -r 's/ID=(.*)/\1/g')
  8. pre(){
  9. mkdir -p _plugins/$OS/$PLUGIN_TYPE
  10. if [ $(cat etc/$PLUGIN_TYPE/$PLUGIN_NAME.json | jq -r ".libs") != 'null' ]; then
  11. for lib in $(cat etc/$PLUGIN_TYPE/$PLUGIN_NAME.json | jq -r ".libs[]"); do
  12. go get $lib;
  13. done
  14. fi
  15. }
  16. post(){
  17. if [ -f "etc/$PLUGIN_TYPE/$PLUGIN_NAME.yaml" ]; then
  18. cp etc/$PLUGIN_TYPE/$PLUGIN_NAME.yaml extensions/$PLUGIN_TYPE/$PLUGIN_NAME;
  19. fi
  20. cd extensions/$PLUGIN_TYPE/$PLUGIN_NAME
  21. zip -r ${PLUGIN_NAME}_$(go env GOARCH).zip .
  22. cd -
  23. mv $(find extensions/$PLUGIN_TYPE/$PLUGIN_NAME -name "*.zip") _plugins/$OS/$PLUGIN_TYPE
  24. }
  25. build(){
  26. case $PLUGIN_NAME in
  27. influx )
  28. 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
  29. ;;
  30. tdengine )
  31. if [ "$(uname -m)" = "x86_64" ]; then
  32. 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;
  33. fi;
  34. if [ "$(uname -m)" = "aarch64" ]; then
  35. 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;
  36. fi;
  37. tar -zxvf /tmp/TDengine-client-2.4.0.18.tar.gz
  38. cd TDengine-client-2.4.0.18 && ./install_client.sh && cd -
  39. 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
  40. ;;
  41. labelImage )
  42. git clone -b v2.2.0-rc3 --depth 1 https://github.com/tensorflow/tensorflow.git /tmp/tensorflow;
  43. 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
  44. ;;
  45. * )
  46. go build -trimpath -modfile extensions.mod --buildmode=plugin -o extensions/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so extensions/$PLUGIN_TYPE/$PLUGIN_NAME/*.go
  47. ;;
  48. esac
  49. }
  50. pre
  51. build
  52. post