文件预览

get.sh

查看 Cloudflare API 技能包中的文件内容。

文件内容

scripts/zones/get.sh

#!/bin/bash
# Get Cloudflare zone details

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../_lib.sh"

DOMAIN=""
OUTPUT="table"

while [[ $# -gt 0 ]]; do
    case $1 in
        --json) OUTPUT="json"; shift ;;
        -h|--help)
            echo "Usage: zones/get.sh <domain> [options]"
            echo ""
            echo "Options:"
            echo "  --json  Raw JSON output"
            exit 0
            ;;
        *)
            if [ -z "$DOMAIN" ]; then
                DOMAIN="$1"
            fi
            shift
            ;;
    esac
done

if [ -z "$DOMAIN" ]; then
    echo "Usage: zones/get.sh <domain>"
    exit 1
fi

TOKEN=$(get_token)
if [ -z "$TOKEN" ]; then
    echo "❌ No API token. Run ./scripts/setup.sh first." >&2
    exit 1
fi

RESPONSE=$(cf_get "/zones?name=$DOMAIN")
check_error "$RESPONSE" || exit 1

ZONE=$(echo "$RESPONSE" | jq '.result[0]')

if [ "$ZONE" = "null" ]; then
    echo "❌ Zone '$DOMAIN' not found"
    exit 1
fi

if [ "$OUTPUT" = "json" ]; then
    echo "$ZONE" | jq '.'
else
    echo ""
    echo "Zone: $(echo "$ZONE" | jq -r '.name')"
    echo "ID: $(echo "$ZONE" | jq -r '.id')"
    echo "Status: $(echo "$ZONE" | jq -r '.status')"
    echo "Plan: $(echo "$ZONE" | jq -r '.plan.name')"
    echo "Nameservers:"
    echo "$ZONE" | jq -r '.name_servers[]' | while read ns; do
        echo "  - $ns"
    done
fi