#!/usr/bin/env bash

set -euo pipefail

readonly PUBLIC_KEY_FILE="${1:-${HOME}/.ssh/id_ed25519_20260723}"
readonly DPASTE_API_URL="https://dpaste.com/api/v2/"

if [[ ! -f "${PUBLIC_KEY_FILE}" ]]; then
  printf '错误：公钥文件不存在：%s\n' "${PUBLIC_KEY_FILE}" >&2
  exit 1
fi

if [[ ! -r "${PUBLIC_KEY_FILE}" ]]; then
  printf '错误：无法读取公钥文件：%s\n' "${PUBLIC_KEY_FILE}" >&2
  exit 1
fi

response="$(
  curl \
    --fail-with-body \
    --silent \
    --show-error \
    --connect-timeout 10 \
    --max-time 30 \
    --user-agent 'ssh-public-key-uploader/1.0' \
    --form "content=<${PUBLIC_KEY_FILE}" \
    --form 'title=SSH public key' \
    --form 'expiry_days=30' \
    "${DPASTE_API_URL}"
)"

url="${response//$'\r'/}"
url="${url//$'\n'/}"

if [[ ! "${url}" =~ ^https://dpaste\.com/[[:alnum:]]+/?$ ]]; then
  printf '错误：dpaste.com 返回了无法识别的响应：%s\n' "${response}" >&2
  exit 1
fi

printf '%s\n' "${url}"
