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 | |
| parent | d67840fa8defc5b46f184665b1fc3e0dbad1dc77 (diff) | |
readme
| -rw-r--r-- | README.md | 71 | ||||
| -rw-r--r-- | about-formatting.sh | 17 | ||||
| -rw-r--r-- | git-create | 40 |
3 files changed, 95 insertions, 33 deletions
@@ -114,18 +114,18 @@ CGIT_CONFIG=/etc/cgitrc /usr/lib/cgit/cgit.cgi Конфигурация nginx: ``` - location /cgit-css/ { - alias /usr/share/cgit/; - try_files $uri =404; - } +location /cgit-css/ { + alias /usr/share/cgit/; + try_files $uri =404; + } - location / { - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi; - fastcgi_param PATH_INFO $uri; - fastcgi_param QUERY_STRING $args; - fastcgi_pass unix:/run/fcgiwrap.socket; - } + location / { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi; + fastcgi_param PATH_INFO $uri; + fastcgi_param QUERY_STRING $args; + fastcgi_pass unix:/run/fcgiwrap.socket; + } ``` ``` @@ -135,3 +135,52 @@ CGIT_CONFIG=/etc/cgitrc /usr/lib/cgit/cgit.cgi description = Мой тестовый репозиторий owner = user ``` + +``` +sudo apt update +sudo apt install python3-pygments +sudo apt install python3-markdown +sudo chmod +x /usr/lib/cgit/filters/syntax-highlighting.py +sudo chmod +x /usr/lib/cgit/filters/about-formatting.sh +``` + +``` +source-filter=/usr/lib/cgit/filters/syntax-highlighting.py +about-filter=/usr/lib/cgit/filters/about-formatting.sh +readme=:README.md +readme=:readme.md +readme=:README.txt +readme=:README + +``` + +``` +sudo systemctl restart fcgiwrap +``` + +``` +sudo nano /usr/lib/cgit/filters/about-formatting.sh +python3 -m markdown --version +echo "# Тестовый заголовок" | /usr/lib/cgit/filters/about-formatting.sh readme.md + + +``` + +``` +virtual-root=/ +css=/cgit-css/cgit.css +logo=/cgit-css/cgit.png +favicon=/cgit-css/favicon.ico +source-filter=/usr/lib/cgit/filters/syntax-highlighting.py +about-filter=/usr/lib/cgit/filters/about-formatting.sh +readme=:README.md +readme=:readme.md +readme=:README.txt +readme=:README +root-readme=README.md +enable-git-config=1 +remove-suffix=1 +scan-path=/home/git/repositories/public +main-title=Asustem.ru +snapshots=tar.gz zip +``` diff --git a/about-formatting.sh b/about-formatting.sh new file mode 100644 index 0000000..6c12df4 --- /dev/null +++ b/about-formatting.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +# Переводим имя файла в нижний регистр для надежности +FILENAME=$(echo "$1" | tr '[:upper:]' '[:lower:]') + +case "$FILENAME" in + *.md|*.markdown) + # Просто передаем текст в python-markdown + exec python3 -m markdown + ;; + *) + # Для обычных TXT файлов сохраняем форматирование + echo "<pre>" + cat + echo "</pre>" + ;; +esac @@ -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 |
