diff options
Diffstat (limited to 'plugins/jetpack/bin/partner-cancel.sh')
-rwxr-xr-x | plugins/jetpack/bin/partner-cancel.sh | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/plugins/jetpack/bin/partner-cancel.sh b/plugins/jetpack/bin/partner-cancel.sh new file mode 100755 index 00000000..1be859b1 --- /dev/null +++ b/plugins/jetpack/bin/partner-cancel.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env sh + +# cancel a the plan provided for the current site using the given partner keys + +usage () { + echo "Usage: partner-cancel.sh --partner_id=partner_id --partner_secret=partner_secret [--url=http://example.com] [--allow-root] [--partner-tracking-id]" +} + +GLOBAL_ARGS="" + +for i in "$@"; do + case $i in + -c=* | --partner_id=* ) CLIENT_ID="${i#*=}" + shift + ;; + -s=* | --partner_secret=* ) CLIENT_SECRET="${i#*=}" + shift + ;; + -u=* | --url=* ) SITE_URL="${i#*=}" + shift + ;; + --partner-tracking-id=* ) PARTNER_TRACKING_ID="${i#*=}" + shift + ;; + --allow-root ) GLOBAL_ARGS="--allow-root" + shift + ;; + -h | --help ) usage + exit + ;; + * ) usage + exit 1 + esac +done + +if [ "$CLIENT_ID" = "" ] || [ "$CLIENT_SECRET" = "" ]; then + usage + exit 1 +fi + +# default API host that can be overridden +if [ -z "$JETPACK_START_API_HOST" ]; then + JETPACK_START_API_HOST='public-api.wordpress.com' +fi + +# fetch an access token using our client ID/secret +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") + +# set URL arg for multisite compatibility +if [ ! -z "$SITE_URL" ]; then + GLOBAL_ARGS=" --url=$SITE_URL" +fi + +ADDITIONAL_ARGS="" +if [ ! -z "$PARTNER_TRACKING_ID" ]; then + ADDITIONAL_ARGS="$ADDITIONAL_ARGS --partner-tracking-id=$PARTNER_TRACKING_ID" +fi + +# Remove leading whitespace +GLOBAL_ARGS=$(echo "$GLOBAL_ARGS" | xargs echo) + +# Intentionally not quoting $GLOBAL_ARGS below so that words in the string are split + +# silently ensure Jetpack is active +wp $GLOBAL_ARGS plugin activate jetpack >/dev/null 2>&1 + +# cancel the partner plan +wp $GLOBAL_ARGS jetpack partner_cancel "$ACCESS_TOKEN_JSON" $ADDITIONAL_ARGS |