This repository has no description
1.6 kB
58 lines
1#!/usr/bin/env bash
2# HedgeDoc pad management script
3# Usage:
4# pad.sh read <pad-id> - Read pad content
5# pad.sh create [file|-] - Create new pad, returns URL
6# pad.sh edit <pad-id> [file|-] - Replace pad content in-place
7# pad.sh info <pad-id> - Get pad metadata
8
9set -euo pipefail
10
11HEDGEDOC_URL="https://pad.lassul.us"
12SKILL_DIR="${SKILL_DIR:-$(cd "$(dirname "$0")" && pwd)}"
13
14cmd="${1:-help}"
15shift || true
16
17case "$cmd" in
18 read)
19 PADID="${1:?Usage: pad.sh read <pad-id>}"
20 curl -sf "${HEDGEDOC_URL}/${PADID}/download"
21 ;;
22
23 create)
24 if [ -n "${1:-}" ] && [ -f "$1" ]; then
25 CONTENT=$(cat "$1")
26 elif [ -n "${1:-}" ] && [ "$1" = "-" ]; then
27 CONTENT=$(cat)
28 else
29 CONTENT=$(cat)
30 fi
31 PAD_URL=$(curl -s -o /dev/null -w "%{redirect_url}" \
32 -X POST "${HEDGEDOC_URL}/new" \
33 -H "Content-Type: text/markdown" \
34 -d "$CONTENT")
35 echo "$PAD_URL"
36 ;;
37
38 edit)
39 PADID="${1:?Usage: pad.sh edit <pad-id> [file|-]}"
40 shift
41 exec "$SKILL_DIR/pad-edit.py" "$PADID" "$@"
42 ;;
43
44 info)
45 PADID="${1:?Usage: pad.sh info <pad-id>}"
46 curl -sf "${HEDGEDOC_URL}/${PADID}/info"
47 ;;
48
49 help|*)
50 echo "Usage: pad.sh <command> [args]"
51 echo ""
52 echo "Commands:"
53 echo " read <pad-id> Read pad content (markdown)"
54 echo " create [file|-] Create new pad, returns URL"
55 echo " edit <pad-id> [file|-] Replace pad content in-place via websocket"
56 echo " info <pad-id> Get pad metadata (JSON)"
57 ;;
58esac