From d60c4da16690cbaca1891c35bf9c460e1c817a0b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Tue, 19 Jan 2021 22:28:04 +0100 Subject: [PATCH] Add cgit to replace gitweb --- .../monitoring/objects_monitoring-1.nix | 2 +- modules/private/websites/tools/git/gitweb.nix | 59 ++++++++++++++++++- 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/modules/private/monitoring/objects_monitoring-1.nix b/modules/private/monitoring/objects_monitoring-1.nix index 4b784ed..4687850 100644 --- a/modules/private/monitoring/objects_monitoring-1.nix +++ b/modules/private/monitoring/objects_monitoring-1.nix @@ -495,7 +495,7 @@ in service_description = "gitweb website is running on git.immae.eu"; host_name = "eldiron.immae.eu"; use = "external-web-service"; - check_command = ["check_https" "git.immae.eu" "/" "git web interface"]; + check_command = ["check_https" "git.immae.eu" "/cgit" "Immae’s git"]; servicegroups = "webstatus-webapps"; _webstatus_name = "Git"; diff --git a/modules/private/websites/tools/git/gitweb.nix b/modules/private/websites/tools/git/gitweb.nix index 2ee7a63..dab0c9e 100644 --- a/modules/private/websites/tools/git/gitweb.nix +++ b/modules/private/websites/tools/git/gitweb.nix @@ -1,4 +1,4 @@ -{ gitweb, writeText, gitolite, git, gitoliteDir, highlight }: +{ gitweb, writeText, stdenv, coreutils, writeScript, gitolite, git, cgit, gitoliteDir, mailcap, highlight }: rec { varDir = gitoliteDir; webRoot = gitweb; @@ -29,6 +29,50 @@ rec { $project_list_default_category = "__Others__"; $highlight_bin = "${highlight}/bin/highlight"; ''; + aboutFilter = writeScript "about-filter.sh" '' + #!${stdenv.shell} + + if [ -f "$CGIT_REPO_PATH/README.html" ]; then + cat "$CGIT_REPO_PATH/README.html" + else + ${cgit}/lib/cgit/filters/about-formatting.sh "$@" + fi + ''; + cgitConfig = writeText "cgitrc" '' + css=/cgit-css/cgit.css + logo=/cgit-css/cgit.png + favicon=/cgit-css/favicon.ico + + root-title=Immae’s git + root-desc=To go back to the old interface: https://git.immae.eu/?old + readme=:README.md + readme=:readme.md + readme=:README + readme=:DOCUMENTATION.md + about-filter=${aboutFilter} + #${cgit}/lib/cgit/filters/about-formatting.sh + source-filter=${cgit}/lib/cgit/filters/syntax-highlighting.py + + enable-blame=1 + enable-index-links=1 + enable-commit-graph=1 + enable-log-filecount=1 + enable-log-linecount=1 + + enable-html-serving=1 + # Allow using gitweb.* keys + enable-git-config=1 + + side-by-side-diffs=1 + snapshots=tar.gz tar.zst zip + mimetype-file=${mailcap}/etc/mime.types + + section=__Others__ + clone-url=ssh://gitolite@git.immae.eu/$CGIT_REPO_URL https://git.immae.eu/$CGIT_REPO_URL + #section-from-path=1 + project-list=${varDir}/projects.list + scan-path=${varDir}/repositories + ''; apache = rec { user = "wwwrun"; group = "wwwrun"; @@ -59,6 +103,19 @@ rec { SetEnv GITWEB_CONFIG "${config}" </Files> </Directory> + + SetEnv CGIT_CONFIG ${cgitConfig} + ScriptAlias /cgit "${cgit}/cgit/cgit.cgi/" + Alias /cgit-css "${cgit}/cgit" + <Directory "${cgit}/cgit/"> + AllowOverride None + Options ExecCGI FollowSymlinks + Require all granted + </Directory> + + RewriteEngine On + RewriteCond %{QUERY_STRING} ^$ + RewriteRule ^/?$ /cgit [L,R=302] ''; }; } -- 2.41.0