partner-cancel.sh 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/usr/bin/env sh
  2. # cancel a the plan provided for the current site using the given partner keys
  3. usage () {
  4. echo "Usage: partner-cancel.sh --partner_id=partner_id --partner_secret=partner_secret [--url=http://example.com] [--allow-root] [--partner-tracking-id]"
  5. }
  6. GLOBAL_ARGS=""
  7. for i in "$@"; do
  8. case $i in
  9. -c=* | --partner_id=* ) CLIENT_ID="${i#*=}"
  10. shift
  11. ;;
  12. -s=* | --partner_secret=* ) CLIENT_SECRET="${i#*=}"
  13. shift
  14. ;;
  15. -u=* | --url=* ) SITE_URL="${i#*=}"
  16. shift
  17. ;;
  18. --partner-tracking-id=* ) PARTNER_TRACKING_ID="${i#*=}"
  19. shift
  20. ;;
  21. --allow-root ) GLOBAL_ARGS="--allow-root"
  22. shift
  23. ;;
  24. -h | --help ) usage
  25. exit
  26. ;;
  27. * ) usage
  28. exit 1
  29. esac
  30. done
  31. if [ "$CLIENT_ID" = "" ] || [ "$CLIENT_SECRET" = "" ]; then
  32. usage
  33. exit 1
  34. fi
  35. # default API host that can be overridden
  36. if [ -z "$JETPACK_START_API_HOST" ]; then
  37. JETPACK_START_API_HOST='public-api.wordpress.com'
  38. fi
  39. # fetch an access token using our client ID/secret
  40. ACCESS_TOKEN_JSON=$(curl https://$JETPACK_START_API_HOST/oauth2/token --silent --header "Host: public-api.wordpress.com" -d "grant_type=client_credentials&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&scope=jetpack-partner")
  41. # set URL arg for multisite compatibility
  42. if [ ! -z "$SITE_URL" ]; then
  43. GLOBAL_ARGS=" --url=$SITE_URL"
  44. fi
  45. ADDITIONAL_ARGS=""
  46. if [ ! -z "$PARTNER_TRACKING_ID" ]; then
  47. ADDITIONAL_ARGS="$ADDITIONAL_ARGS --partner-tracking-id=$PARTNER_TRACKING_ID"
  48. fi
  49. # Remove leading whitespace
  50. GLOBAL_ARGS=$(echo "$GLOBAL_ARGS" | xargs echo)
  51. # Intentionally not quoting $GLOBAL_ARGS below so that words in the string are split
  52. # silently ensure Jetpack is active
  53. wp $GLOBAL_ARGS plugin activate jetpack >/dev/null 2>&1
  54. # cancel the partner plan
  55. wp $GLOBAL_ARGS jetpack partner_cancel "$ACCESS_TOKEN_JSON" $ADDITIONAL_ARGS