generate.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/sh
  2. set -euo pipefail
  3. DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
  4. rm -rf $DIR/generated/*
  5. for providerdir in $(find $DIR/../../pkg/provider -maxdepth 1 -mindepth 1 | grep -vE "(util|testing|register)"); do
  6. provider=$(basename $providerdir)
  7. cd $providerdir
  8. if [ ! -f "go.mod" ]; then
  9. go mod init "github.com/external-secrets/external-secrets-provider-${provider}"
  10. go mod tidy
  11. fi
  12. cd $DIR
  13. # TODO:
  14. if [ "${provider}" == "yandex" ]; then
  15. continue;
  16. fi
  17. # grpc should not be generated
  18. if [ "${provider}" == "grpc" ]; then
  19. continue;
  20. fi
  21. pkgname=$provider
  22. # override import path, because provider directory structure is not standardised
  23. if [ "${provider}" == "gcp" ]; then
  24. pkgname="gcp/secretmanager"
  25. fi
  26. if [ "${provider}" == "azure" ]; then
  27. pkgname="azure/keyvault"
  28. fi
  29. echo "generating provider $provider from $providerdir"
  30. mkdir -p "${DIR}/generated/${provider}"
  31. sed "s\PROVIDER_NAME\\$pkgname\g" $DIR/provider.go.tmpl > "$DIR/generated/${provider}/main.go"
  32. cd $DIR/generated/${provider}/
  33. go mod init github.com/external-secrets/external-secrets-provider-$provider >/dev/null 2>&1
  34. sed -i "2i replace github.com/external-secrets/external-secrets/pkg/provider/${provider} => ../../../../pkg/provider/${provider}" go.mod
  35. cd $DIR
  36. go mod download
  37. done