#!/bin/bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO="${1:-}" if [ -z "$REPO" ]; then echo "Usage: ./new-project repo-name" exit 1 fi case "$REPO" in *[!A-Za-z0-9._-]*|"."|".."|"") echo "Repo name: only latin letters, digits, dot, underscore, dash"; exit 1;; esac USER="dauren_moldabayev" TOKEN="$(head -n 1 "$SCRIPT_DIR/.git-credentials" | sed -E 's#^https?://[^:]+:([^@]+)@.*#\1#')" echo "Creating repo $USER/$REPO..." HTTP_CODE=$(curl -sS -o /tmp/gitea-create-repo.json -w "%{http_code}" -X POST "http://gitea:3000/api/v1/user/repos" \ -H "Authorization: token $TOKEN" \ -H "Content-Type: application/json" \ -d "{\"name\":\"$REPO\",\"private\":false,\"auto_init\":true,\"default_branch\":\"main\"}") if [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "409" ] && [ "$HTTP_CODE" != "422" ]; then cat /tmp/gitea-create-repo.json exit 1 fi if [ ! -d "$REPO" ]; then echo "Cloning..." HOME="$SCRIPT_DIR" GIT_CONFIG_GLOBAL="$SCRIPT_DIR/.gitconfig" \ git clone "http://gitea:3000/$USER/$REPO.git" git -C "$REPO" remote set-url origin "http://gitea:3000/$USER/$REPO.git" fi echo "Done: $REPO" echo "Git: https://git.vibe42.kz/$USER/$REPO" echo "Pages: https://pages.git.vibe42.kz/$USER/$REPO/"