+++ /dev/null
-{ gitweb, writeText, stdenv, coreutils, writeScript, gitolite, git, cgit, gitoliteDir, mailcap, highlight }:
-rec {
- varDir = gitoliteDir;
- config = writeText "gitweb.conf" ''
- $git_temp = "/tmp";
-
- # The directories where your projects are. Must not end with a
- # slash.
- $projectroot = "${varDir}/repositories";
-
- $projects_list = "${varDir}/projects.list";
- $strict_export = "true";
-
- # Base URLs for links displayed in the web interface.
- our @git_base_url_list = qw(ssh://gitolite@git.immae.eu https://git.immae.eu);
-
- $feature{'blame'}{'default'} = [1];
- $feature{'avatar'}{'default'} = ['gravatar'];
- $feature{'highlight'}{'default'} = [1];
-
- @stylesheets = ("gitweb-theme/gitweb.css");
- $logo = "gitweb-theme/git-logo.png";
- $favicon = "gitweb-theme/git-favicon.png";
- $javascript = "gitweb-theme/gitweb.js";
- $logo_url = "https://git.immae.eu/";
- $projects_list_group_categories = "true";
- $projects_list_description_width = 60;
- $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";
- modules = [ "cgid" ];
- root = gitweb;
- vhostConf = ''
- SetEnv GIT_PROJECT_ROOT ${varDir}/repositories/
- ScriptAliasMatch \
- "(?x)^/(.*/(HEAD | \
- info/refs | \
- objects/(info/[^/]+ | \
- [0-9a-f]{2}/[0-9a-f]{38} | \
- pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
- git-(upload|receive)-pack))$" \
- ${git}/libexec/git-core/git-http-backend/$1
-
- <Directory "${git}/libexec/git-core">
- Require all granted
- </Directory>
- <Directory "${root}">
- DirectoryIndex gitweb.cgi
- Require all granted
- AllowOverride None
- Options ExecCGI FollowSymLinks
- <Files gitweb.cgi>
- SetHandler cgi-script
- 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]
- '';
- };
-}