#!/bin/bash if [ "$#" -ne 2 ]; then echo "Использование: git-create [public|private] [имя_репозитория]" exit 1 fi TYPE=$1 NAME=$2 SERVER="git@АДРЕС_СЕРВЕРА" REMOTE_PATH="/home/git/repositories/${TYPE}/${NAME}.git" # Запрашиваем описание для публичного репозитория DESC="" if [ "$TYPE" == "public" ]; then read -p "Введите описание для cgit (или нажмите Enter): " DESC fi echo "====> Создаю пустой ${TYPE} репозиторий на сервере..." ssh ${SERVER} "mkdir -p ${REMOTE_PATH} && git init --bare ${REMOTE_PATH}" if [ $? -eq 0 ]; then echo "====> Репозиторий успешно создан!" # Если репозиторий публичный, настраиваем параметры для cgit на сервере if [ "$TYPE" == "public" ]; then ssh ${SERVER} "touch ${REMOTE_PATH}/git-daemon-export-ok" if [ ! -z "$DESC" ]; then # Прописываем описание напрямую в серверный git config ssh ${SERVER} "git --git-dir=${REMOTE_PATH} config gitweb.description \"$DESC\"" fi fi # Привязка локальной папки if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then git remote remove origin 2>/dev/null git remote add origin ${SERVER}:${REMOTE_PATH} echo "====> Локальный remote привязан. Можно делать git push!" fi fi