diff options
| author | Татьяна Фарбер <alexandr@asustem.ru> | 2026-10-21 15:27:21 +0400 |
|---|---|---|
| committer | Татьяна Фарбер <alexandr@asustem.ru> | 2026-10-21 15:27:21 +0400 |
| commit | 7f87b98250e2eebcbbec4a6295ec68801550bddf (patch) | |
| tree | 53f00bb030c07c326ec36e23bf6bfe1ea395e0bb /git-create | |
| parent | d67840fa8defc5b46f184665b1fc3e0dbad1dc77 (diff) | |
readme
Diffstat (limited to 'git-create')
| -rw-r--r-- | git-create | 40 |
1 files changed, 18 insertions, 22 deletions
@@ -1,44 +1,40 @@ #!/bin/bash -# Проверяем аргументы if [ "$#" -ne 2 ]; then echo "Использование: git-create [public|private] [имя_репозитория]" - echo "Пример: git-create private my-awesome-app" exit 1 fi TYPE=$1 NAME=$2 - -# Проверяем корректность типа -if [ "$TYPE" != "public" ] && [ "$TYPE" != "private" ]; then - echo "Ошибка: Тип должен быть либо 'public', либо 'private'" - exit 1 -fi - -# Конфигурация сервера (замените на ваш IP или имя из .ssh/config) SERVER="git@АДРЕС_СЕРВЕРА" REMOTE_PATH="/home/git/repositories/${TYPE}/${NAME}.git" -echo "====> Создаю пустой ${TYPE} репозиторий на сервере..." +# Запрашиваем описание для публичного репозитория +DESC="" +if [ "$TYPE" == "public" ]; then + read -p "Введите описание для cgit (или нажмите Enter): " DESC +fi -# Выполняем удаленную команду на сервере от имени пользователя git +echo "====> Создаю пустой ${TYPE} репозиторий на сервере..." ssh ${SERVER} "mkdir -p ${REMOTE_PATH} && git init --bare ${REMOTE_PATH}" if [ $? -eq 0 ]; then - echo "====> Репозиторий успешно создан на сервере!" + 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 - # Проверяем, находимся ли мы внутри локального git-репозитория + # Привязка локальной папки if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then - echo "====> Найдена локальная папка git. Привязываю remote 'origin'..." git remote remove origin 2>/dev/null git remote add origin ${SERVER}:${REMOTE_PATH} - echo "====> Готово! Теперь вы можете сделать: git push -u origin --all" - else - echo "====> Внимание: Текущая папка не является git-репозиторием." - echo "Для привязки выполните локально:" - echo "git remote add origin ${SERVER}:${REMOTE_PATH}" + echo "====> Локальный remote привязан. Можно делать git push!" fi -else - echo "Ошибка при создании репозитория на сервере." fi |
