diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-03-28 11:07:36 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-03-28 13:45:48 +0200 |
commit | b317348065faf50ba912a921aadc8c2e907734ce (patch) | |
tree | 3b6eee747d9352fca177eb7ba3a73cc82eb65357 /cgit/syntax-highlighting.py | |
parent | ca0a2752c66d90b49a0424e03795da7e3e4ab73c (diff) |
Add osmocom-extended cgit container
This uses the debian-nginx container "ankitrgadiya/cgit:debian-nginx"
and adds pygments for syntax highlighting, as well as the osmocom
commit filter for linking to gerrit change-ids as well as
redmine issues
Change-Id: Iec75769a972950ed9df95d5b36aa930daad1565a
Diffstat (limited to 'cgit/syntax-highlighting.py')
-rwxr-xr-x | cgit/syntax-highlighting.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/cgit/syntax-highlighting.py b/cgit/syntax-highlighting.py new file mode 100755 index 0000000..b5d615e --- /dev/null +++ b/cgit/syntax-highlighting.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 + +# This script uses Pygments and Python3. You must have both installed +# for this to work. +# +# http://pygments.org/ +# http://python.org/ +# +# It may be used with the source-filter or repo.source-filter settings +# 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 ) + + +import sys +from pygments import highlight +from pygments.util import ClassNotFound +from pygments.lexers import TextLexer +from pygments.lexers import guess_lexer +from pygments.lexers import guess_lexer_for_filename +from pygments.formatters import HtmlFormatter + + +data = sys.stdin.read() +filename = sys.argv[1] +formatter = HtmlFormatter(style='pastie') + +try: + lexer = guess_lexer_for_filename(filename, data) +except ClassNotFound: + # check if there is any shebang + if data[0:2] == '#!': + lexer = guess_lexer(data) + else: + lexer = TextLexer() +except TypeError: + lexer = TextLexer() + +# highlight! :-) +# printout pygments' css definitions as well +sys.stdout.write('<style>') +sys.stdout.write(formatter.get_style_defs('.highlight')) +sys.stdout.write('</style>') +sys.stdout.write(highlight(data, lexer, formatter, outfile=None)) |