#!/bin/sh set -eu EDGE_CACHE_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) EDGE_CACHE_TOKEN_FILE="$EDGE_CACHE_DIR/secrets/cloudflare_cache_api_token" EDGE_CACHE_TOKEN_TMP="$EDGE_CACHE_TOKEN_FILE.tmp.$$" if [ ! -t 0 ]; then echo "Refusing to read a Cloudflare token from a non-interactive stdin." >&2 exit 1 fi printf 'Cloudflare Cache Rules API token: ' > /dev/tty stty -echo < /dev/tty IFS= read -r EDGE_CACHE_TOKEN < /dev/tty || true stty echo < /dev/tty printf '\n' > /dev/tty if [ "${#EDGE_CACHE_TOKEN}" -lt 20 ]; then echo "Token is missing or unexpectedly short." >&2 exit 1 fi umask 077 printf '%s\n' "$EDGE_CACHE_TOKEN" > "$EDGE_CACHE_TOKEN_TMP" mv "$EDGE_CACHE_TOKEN_TMP" "$EDGE_CACHE_TOKEN_FILE" unset EDGE_CACHE_TOKEN echo "Token installed with mode 600. The running controller will sync the managed Cache Rule automatically."