git » git-arr » commit cacf2ee

git-arr: Implement an "ignore" option

author Alberto Bertogli
2015-11-07 11:54:22 UTC
committer Alberto Bertogli
2015-11-07 12:04:09 UTC
parent c4e6484bb00e93b55e1f94f3464a40a3bd12f01f

git-arr: Implement an "ignore" option

When having symbolic links to the same repositories (e.g. if you have "repo"
and a "repo.git" linking to it), it can be useful to ignore based on regular
expressions to avoid having duplicates in the output.

Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

git-arr +7 -2
sample.conf +7 -0

diff --git a/git-arr b/git-arr
index a245855..7e665dd 100755
--- a/git-arr
+++ b/git-arr
@@ -5,10 +5,11 @@ git-arr: A git web html generator.
 
 from __future__ import print_function
 
-import sys
-import os
 import math
 import optparse
+import os
+import re
+import sys
 
 try:
     import configparser
@@ -58,6 +59,7 @@ def load_config(path):
         'git_url_file': 'cloneurl',
         'embed_markdown': 'yes',
         'embed_images': 'no',
+        'ignore': '',
     }
 
     config = configparser.SafeConfigParser(defaults)
@@ -88,6 +90,9 @@ def load_config(path):
             config.remove_section(s)
 
     for s in config.sections():
+        if config.get(s, 'ignore') and re.search(config.get(s, 'ignore'), s):
+            continue
+
         fullpath = find_git_dir(config.get(s, 'path'))
         if not fullpath:
             raise ValueError(
diff --git a/sample.conf b/sample.conf
index fb8bbdd..d91f5a7 100644
--- a/sample.conf
+++ b/sample.conf
@@ -67,6 +67,13 @@ path = /srv/git/repo/
 # Default: no
 #embed_images = no
 
+# Ignore repositories that match this regular expression.
+# Generally used with recursive = yes, to ignore repeated repositories (for
+# example, if using symlinks).
+# For ignoring specific repositories, putting a "disable_gitweb" is a much
+# better alternative.
+# Default: empty (don't ignore)
+#ignore = \.git$
 
 # Another repository, we don't generate a tree for it because it's too big.
 [linux]