1#!/bin/sh
2
3INVITE_FILE="/keys/initial-invite-code.txt"
4MARKER="/keys/.invite_created"
5
6# Check if invite code was already created
7if [ -f "$MARKER" ]; then
8 echo "✓ Initial invite code already created"
9 exit 0
10fi
11
12echo "Waiting for database to be ready..."
13sleep 10
14
15# Try to create invite code - retry until database is ready
16MAX_ATTEMPTS=30
17ATTEMPT=0
18INVITE_CODE=""
19
20while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
21 ATTEMPT=$((ATTEMPT + 1))
22 OUTPUT=$(/cocoon create-invite-code --uses 1 2>&1)
23 INVITE_CODE=$(echo "$OUTPUT" | grep -oE '[a-zA-Z0-9]{8}-[a-zA-Z0-9]{8}' || echo "")
24
25 if [ -n "$INVITE_CODE" ]; then
26 break
27 fi
28
29 if [ $((ATTEMPT % 5)) -eq 0 ]; then
30 echo " Waiting for database... ($ATTEMPT/$MAX_ATTEMPTS)"
31 fi
32 sleep 2
33done
34
35if [ -n "$INVITE_CODE" ]; then
36 echo ""
37 echo "╔════════════════════════════════════════╗"
38 echo "║ SAVE THIS INVITE CODE! ║"
39 echo "║ ║"
40 echo "║ $INVITE_CODE ║"
41 echo "║ ║"
42 echo "║ Use this to create your first ║"
43 echo "║ account on your PDS. ║"
44 echo "╚════════════════════════════════════════╝"
45 echo ""
46
47 echo "$INVITE_CODE" > "$INVITE_FILE"
48 echo "✓ Invite code saved to: $INVITE_FILE"
49
50 touch "$MARKER"
51 echo "✓ Initial setup complete!"
52else
53 echo "✗ Failed to create invite code"
54 echo "Output: $OUTPUT"
55 exit 1
56fi