From ec28f495ba5d8a827fb931e338a0a69bc3dd5aae Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Sun, 9 Jun 2013 10:11:26 +0000 Subject: Add initial cgit module --- modules/cgit/manifests/init.pp | 21 ++++ modules/cgit/templates/cgitrc | 145 ++++++++++++++++++++++++++ modules/cgit/templates/filter.commit-links.sh | 42 ++++++++ modules/cgit/templates/vhost.conf | 2 + modules/cgit/templates/webapp.conf | 9 ++ 5 files changed, 219 insertions(+) create mode 100644 modules/cgit/manifests/init.pp create mode 100644 modules/cgit/templates/cgitrc create mode 100755 modules/cgit/templates/filter.commit-links.sh create mode 100644 modules/cgit/templates/vhost.conf create mode 100644 modules/cgit/templates/webapp.conf diff --git a/modules/cgit/manifests/init.pp b/modules/cgit/manifests/init.pp new file mode 100644 index 00000000..cda47a4b --- /dev/null +++ b/modules/cgit/manifests/init.pp @@ -0,0 +1,21 @@ +class cgit { + package { 'cgit': } + + file { '/etc/cgitrc': + content => template('cgit/cgitrc'), + notify => Service['apache'], + require => Package['cgit'], + } + + apache::webapp_other { 'cgit': + webapp_file => 'cgit/webapp.conf', + } + + mga-common::local_script { 'cgit.filter.commit-links.sh': + content => template('cgit/filter.commit-links.sh'), + } + + apache::vhost::base { "cgit.$::domain": + content => template('cgit/vhost.conf') + } +} diff --git a/modules/cgit/templates/cgitrc b/modules/cgit/templates/cgitrc new file mode 100644 index 00000000..b4931cb6 --- /dev/null +++ b/modules/cgit/templates/cgitrc @@ -0,0 +1,145 @@ +# +# See cgitrc(5) or /usr/share/doc/cgit-*/cgitrc.5.html for details +# + +# Enable caching of up to 1000 output entries +cache-size=1000 + + +# Specify some default clone urls using macro expansion +#clone-url=git://foo.org/$CGIT_REPO_URL git@foo.org:$CGIT_REPO_URL + +# Specify the css url +css=/cgit-data/cgit.css + + +# Show owner on index page +enable-index-owner=1 + + +# Allow http transport git clone +enable-git-clone=1 + + +# Show extra links for each repository on the index page +enable-index-links=1 + + +# Enable ASCII art commit history graph on the log pages +enable-commit-graph=1 + + +# Show number of affected files per commit on the log pages +enable-log-filecount=1 + + +# Show number of added/removed lines per commit on the log pages +enable-log-linecount=1 + + +# Sort branches by date +branch-sort=age + + +# Add a cgit favicon +#favicon=/favicon.ico + + +# Use a custom logo +logo=//nav.mageia.org/css/mageia-logo-nav-3.png + + +# Enable statistics per week, month and quarter +max-stats=quarter + + +# Set the title and heading of the repository index page +#root-title=example.com git repositories + + +# Set a subheading for the repository index page +#root-desc=tracking the foobar development + + +# Include some more info about example.com on the index page +#root-readme=/var/www/htdocs/about.html + + +# Allow download of tar.gz, tar.bz2 and zip-files +#snapshots=tar.gz tar.bz2 zip + + +## +## List of common mimetypes +## + +mimetype.gif=image/gif +mimetype.html=text/html +mimetype.jpg=image/jpeg +mimetype.jpeg=image/jpeg +mimetype.pdf=application/pdf +mimetype.png=image/png +mimetype.svg=image/svg+xml + + +# Highlight source code with python pygments-based highligher +source-filter=/usr/libexec/cgit/filters/syntax-highlighting.py + +# Format markdown, restructuredtext, manpages, text files, and html files +# through the right converters +about-filter=/usr/libexec/cgit/filters/about-formatting.sh + +## +## Search for these files in the root of the default branch of repositories +## for coming up with the about page: +## +readme=:README.md +readme=:readme.md +readme=:README.mkd +readme=:readme.mkd +readme=:README.rst +readme=:readme.rst +readme=:README.html +readme=:readme.html +readme=:README.htm +readme=:readme.htm +readme=:README.txt +readme=:readme.txt +readme=:README +readme=:readme +readme=:INSTALL.md +readme=:install.md +readme=:INSTALL.mkd +readme=:install.mkd +readme=:INSTALL.rst +readme=:install.rst +readme=:INSTALL.html +readme=:install.html +readme=:INSTALL.htm +readme=:install.htm +readme=:INSTALL.txt +readme=:install.txt +readme=:INSTALL +readme=:install + +## +## List of repositories. +## PS: Any repositories listed when section is unset will not be +## displayed under a section heading +## PPS: This list could be kept in a different file (e.g. '/etc/cgitrepos') +## and included like this: +## include=/etc/cgitrepos +## + +#repo.url=foo +#repo.path=/var/lib/git/foo.git +#repo.desc=the master foo repository +#repo.owner=fooman@example.com +#repo.readme=info/web/about.html + + +commit-filter=/usr/local/bin/cgit.filter.commit-links.sh + +section-from-path=-1 +case-sensitive-sort=0 +scan-path=/git diff --git a/modules/cgit/templates/filter.commit-links.sh b/modules/cgit/templates/filter.commit-links.sh new file mode 100755 index 00000000..ca09a181 --- /dev/null +++ b/modules/cgit/templates/filter.commit-links.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# This script can be used to generate links in commit messages. +# +# To use this script, refer to this file with either the commit-filter or the +# repo.commit-filter options in cgitrc. +# +# The following environment variables can be used to retrieve the configuration +# of the repository for which this script is called: +# CGIT_REPO_URL ( = repo.url setting ) +# CGIT_REPO_NAME ( = repo.name setting ) +# CGIT_REPO_PATH ( = repo.path setting ) +# CGIT_REPO_OWNER ( = repo.owner setting ) +# CGIT_REPO_DEFBRANCH ( = repo.defbranch setting ) +# CGIT_REPO_SECTION ( = section setting ) +# CGIT_REPO_CLONE_URL ( = repo.clone-url setting ) +# + +regex='' + +# This expression generates links to commits referenced by their SHA1. +regex=$regex' +s|\b([0-9a-fA-F]{7,40})\b|\1|g' + +# This expression generates links various common bugtrackers. +regex=$regex' +s|mga#([0-9]+)\b|mga#\1|g' +regex=$regex' +s|rhbz#([0-9]+)\b|rhbz#\1|g' +regex=$regex' +s|fdo#([0-9]+)\b|fdo#\1|g' +regex=$regex' +s|bko#([0-9]+)\b|bko#\1|g' +regex=$regex' +s|kde#([0-9]+)\b|kde#\1|g' +regex=$regex' +s|bgo#([0-9]+)\b|bgo#\1|g' +regex=$regex' +s|gnome#([0-9]+)\b|gnome#\1|g' +regex=$regex' +s|lp#([0-9]+)\b|lp#\1|g' + +sed -re "$regex" diff --git a/modules/cgit/templates/vhost.conf b/modules/cgit/templates/vhost.conf new file mode 100644 index 00000000..c33efe84 --- /dev/null +++ b/modules/cgit/templates/vhost.conf @@ -0,0 +1,2 @@ +Alias /cgit-data /usr/share/cgit +ScriptAlias / /var/www/cgi-bin/cgit diff --git a/modules/cgit/templates/webapp.conf b/modules/cgit/templates/webapp.conf new file mode 100644 index 00000000..54c85a29 --- /dev/null +++ b/modules/cgit/templates/webapp.conf @@ -0,0 +1,9 @@ +# gitweb configuration +# disabled +#Alias /gitweb /usr/share/gitweb + + + Order allow,deny + Allow from all + + -- cgit v1.2.1