#!/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" # Если описание введено, пишем его СТРОГО в файл description if [ ! -z "$DESC" ]; then ssh ${SERVER} "echo \"$DESC\" > ${REMOTE_PATH}/description" fi # На всякий случай выставляем права для www-data прямо из скрипта ssh ${SERVER} "chown -R git:www-data ${REMOTE_PATH} && chmod -R 750 ${REMOTE_PATH}" 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