39 lines
1.2 KiB
Bash
Executable File
39 lines
1.2 KiB
Bash
Executable File
#!/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/"
|