From 7f87b98250e2eebcbbec4a6295ec68801550bddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0=20=D0=A4=D0=B0?= =?UTF-8?q?=D1=80=D0=B1=D0=B5=D1=80?= Date: Wed, 21 Oct 2026 15:27:21 +0400 Subject: readme --- README.md | 71 ++++++++++++++++++++++++++++++++++++++++++++--------- about-formatting.sh | 17 +++++++++++++ git-create | 40 ++++++++++++++---------------- 3 files changed, 95 insertions(+), 33 deletions(-) create mode 100644 about-formatting.sh diff --git a/README.md b/README.md index bb0707e..182ca57 100644 --- a/README.md +++ b/README.md @@ -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 "
"
+        cat
+        echo "
" + ;; +esac diff --git a/git-create b/git-create index 3e95118..f90b66b 100644 --- a/git-create +++ b/git-create @@ -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 -- cgit v1.2.3