#!/usr/bin/env bash set -euo pipefail GITEA=${GITEA_URL:-https://git.thepra.dev} ORG=${GITEA_ORG:-Arasaka} NAME=${1:-MeWeb} ROOT=$(cd "$(dirname "$0")/../.." && pwd) cred=$(printf 'protocol=https\nhost=%s\n\n' "${GITEA#https://}" | git credential fill) user=$(printf '%s\n' "$cred" | sed -n 's/^username=//p') pass=$(printf '%s\n' "$cred" | sed -n 's/^password=//p') [ -n "$user" ] && [ -n "$pass" ] || { echo "no stored git credential for $GITEA"; exit 1; } out=$(mktemp) trap 'rm -f "$out"' EXIT body=$(printf '{"name":"%s","private":false,"default_branch":"master","description":"me-web? Can you run your own server from here? Checks your connection and device and explains what stands in the way."}' "$NAME") code=$(curl -s -o "$out" -w '%{http_code}' -u "$user:$pass" -H 'Content-Type: application/json' \ -X POST "$GITEA/api/v1/orgs/$ORG/repos" -d "$body") case "$code" in 201) echo "created $GITEA/$ORG/$NAME" ;; 409) echo "already exists: $GITEA/$ORG/$NAME" ;; *) echo "Gitea answered $code:"; cat "$out"; echo; exit 1 ;; esac cd "$ROOT" git remote get-url origin >/dev/null 2>&1 || git remote add origin "$GITEA/$ORG/$NAME.git" git push -u origin master