#!/usr/bin/env bash # Push a markdown file to a running Proof server and return the document URL. # Usage: proof_push.sh [server-url] set -euo pipefail FILE="${1:?Usage: proof_push.sh [server-url]}" SERVER="${2:-http://localhost:4000}" UI_URL="${3:-http://localhost:3000}" if [[ ! -f "$FILE" ]]; then echo "error: file not found: $FILE" >&2 exit 1 fi TITLE=$(basename "$FILE" .md) RESPONSE=$(curl -s -X POST "${SERVER}/share/markdown" \ -H "Content-Type: application/json" \ -d "$(jq -n --arg md "$(cat "$FILE")" --arg title "$TITLE" '{markdown: $md, title: $title}')") SLUG=$(echo "$RESPONSE" | jq -r '.slug // empty') ERROR=$(echo "$RESPONSE" | jq -r '.error // empty') if [[ -z "$SLUG" ]]; then echo "error: failed to create document${ERROR:+: $ERROR}" >&2 echo "$RESPONSE" >&2 exit 1 fi TOKEN_PATH=$(echo "$RESPONSE" | jq -r '.tokenPath // empty') echo "slug: $SLUG" echo "url: ${UI_URL}/d/${SLUG}" [[ -n "$TOKEN_PATH" ]] && echo "editor-url: ${UI_URL}${TOKEN_PATH}"