4 use Girocco
::Util
qw(url_path);
5 use Digest
::MD5
qw(md5_hex);
7 eval { require HTML
::Email
::Obfuscate
; 1 } or
9 require Girocco
::Email
::Obfuscate
;
10 $INC{'HTML/Email/Obfuscate.pm'} = $INC{'Girocco/Email/Obfuscate.pm'}; # mwahaha
14 ## For the complete overview of available configuration options,
15 ## see git.git/gitweb/gitweb.perl file beginning (git.git/gitweb/README
16 ## may miss some custom patches, in theory).
18 # rename detection options for git-diff and git-diff-tree (default is '-M')
19 our @diff_opts = ('-B', '-C');
21 # Whether to include project list on the gitweb front page; 0 means yes,
22 # 1 means no list but show tag cloud if enabled (all projects still need
23 # to be scanned, unless the info is cached), 2 means no list and no tag cloud
25 our $frontpage_no_project_list = 1;
27 ## projects list cache for busy sites with many projects;
28 ## if you set this to non-zero, it will be used as the cached
29 ## index lifetime in minutes
30 our $projlist_cache_lifetime = 10;
32 ## default charset for text/plain blob
33 our $default_text_plain_charset = 'utf-8';
35 # Comment out to disable ctags
36 $feature{'ctags'}{'default'}=["@{[url_path($Girocco::Config::webadmurl)]}/tagproj.cgi"];
38 $feature{'blame'}{'default'}=[1];
39 $feature{'blame_incremental'}{'default'}=[1];
41 $feature{'snapshot'}{'default'} = ['tgz', 'zip'];
43 # Enable override to turn off snapshots on a per-repository basis with config gitweb.snapshot=none
44 #$feature{'snapshot'}{'override'} = 1;
46 # Enable this to highlight sources if highlight is available
47 #$feature{'highlight'}{'default'} = [1];
49 # Set this if highlight is enabled and not available as 'highlight' in $PATH
50 # You should set this to the full absolute path to highlight whenever highlight
51 # cannot be found in any of the `getconf PATH` directories.
52 #our $highlight_bin = "highlight";
54 # the width (in characters) of the projects list "Description" column
55 # (the default is only 25 if this is not set)
56 our $projects_list_description_width = 40;
59 ### You probably don't really want to tweak anything below.
63 our $my_url = $Girocco::Config
::gitweburl
;
65 # Base web path absolute url except "/" should be ""
66 our $my_uri = url_path
($Girocco::Config
::gitweburl
);
68 # Base web path absolute url
69 our $base_url = url_path
($Girocco::Config
::gitweburl
,1);
71 ## git base URL used for URL to fetch bundle information page
72 ## i.e. full URL is "$git_base_bundles_url/$project/bundles"
73 our $git_base_bundles_url = url_path
($Girocco::Config
::bundlesurl
);
75 # https hint html inserted right after any https push URL (undef for none)
76 # e.g. "<a href="https_push_instructions.html">https push instructions</a>"
77 our $https_hint_html = undef;
78 $https_hint_html = substr(<<HINT,0,-1) if $Girocco::Config::httpspushurl;
79 <sup class="sup"><span><a href="@{[url_path($Girocco::Config::htmlurl)]}/httpspush.html">(learn more)</a></span></sup>
82 # owner link hook given owner name (full and NOT obfuscated)
83 # should return full URL-escaped link to attach to owner, for example:
84 # sub { return "/showowner.cgi?owner=".CGI::Util::escape($_[0]); }
85 our $owner_link_hook = undef;
86 $owner_link_hook = sub { url_path
($Girocco::Config
::webadmurl
)."/projlist.cgi?name=".md5_hex
(lc($_[0])); };
88 # Path to a POSIX shell. Needed to run $highlight_bin and a snapshot compressor.
89 # Only used when highlight is enabled or snapshots with compressors are enabled.
91 $posix_shell_bin = $Girocco::Config
::posix_sh_bin
if $Girocco::Config
::posix_sh_bin
;
93 ## core git executable to use
94 ## this can just be "git" if your webserver has a sensible PATH
95 our $GIT = $Girocco::Config
::git_bin
;
97 ## path to automatic README.html utility
98 our $git_automatic_readme_html = $Girocco::Config
::basedir
. '/bin/run-format-readme.sh';
100 ## absolute fs-path which will be prepended to the project path
101 our $projectroot = $Girocco::Config
::reporoot
;
103 # source of projects list
104 our $projects_list = $Girocco::Config
::projlist_cache_dir
."/gitweb.list";
106 ## target of the home link on top of all pages (absolute url)
107 our $home_link = url_path
($Girocco::Config
::gitweburl
,1);
109 ## string of the home link on top of all pages
110 our $home_link_str = $Girocco::Config
::name
;
112 ## name of your site or organization to appear in page titles
113 ## replace this with something more descriptive for clearer bookmarks
114 our $site_name = $Girocco::Config
::title
;
116 ## html text to include at home page
117 our $home_text = "$Girocco::Config::basedir/gitweb/indextext.html";
119 ## URI of stylesheets
120 our @stylesheets = ("@{[url_path($Girocco::Config::gitwebfiles)]}/gitweb.css");
122 ## URI of GIT logo (72x27 size)
123 our $logo = "@{[url_path($Girocco::Config::gitwebfiles)]}/git-logo.png";
125 ## URI of GIT favicon, assumed to be image/png type
126 our $favicon = "@{[url_path($Girocco::Config::gitwebfiles)]}/git-favicon.png";
129 our $javascript = "@{[url_path($Girocco::Config::gitwebfiles)]}/gitweb.js";
133 ## Any of the urls in @git_base_url_list, @git_base_mirror_urls or
134 ## @git_base_push_urls may be an array ref instead of a scalar in which
135 ## case ${}[0] is the url and ${}[1] is an html fragment "hint" to display
136 ## right after the URL.
138 ## list of git base URLs used for URL for where to fetch project from,
139 ## i.e. full URL is "$git_base_url/$project"
140 our @git_base_url_list = ();
141 $Girocco::Config
::gitpullurl
and push @git_base_url_list, $Girocco::Config
::gitpullurl
;
142 $Girocco::Config
::httppullurl
and push @git_base_url_list, $Girocco::Config
::httppullurl
;
144 ## For push projects (a .nofetch file exists OR gitweb.showpush is true)
145 ## @git_base_url_list entries are shown as "mirror URL" and @git_base_push_urls
146 ## are shown as "push URL" and @git_base_mirror_urls are ignored.
147 ## For non-push projects, @git_base_url_list and @git_base_mirror_urls are shown
148 ## as "mirror URL" and @git_base_push_urls are ignored.
150 ## list of extra git base URLs used for mirrors for where to fetch project from,
151 ## i.e. full URL is "$git_base_mirror_url/$project"
152 our @git_base_mirror_urls = ();
153 $Girocco::Config
::httpspushurl
&& $Girocco::Config
::httpspushurl
ne ($Girocco::Config
::httppullurl
||'') and
154 push @git_base_mirror_urls, [$Girocco::Config
::httpspushurl
,
155 "<sup class=\"sup\"><span><a href=\"@{[url_path($Girocco::Config::htmlurl)]}/rootcert.html\">(learn more)</a></span></sup>"];
156 $Girocco::Config
::pushurl
&& $Girocco::Config
::pushurl
=~ m
|^ssh
://|i
and
157 push @git_base_mirror_urls, substr($Girocco::Config
::pushurl
, 0, 6) .
158 'git@' . substr($Girocco::Config
::pushurl
, 6);
160 ## list of git base URLs used for URL to push project to,
161 ## i.e. full URL is "$git_base_push_url/$project"
162 our @git_base_push_urls = ();
163 $Girocco::Config
::pushurl
and push @git_base_push_urls, $Girocco::Config
::pushurl
;
164 $Girocco::Config
::httpspushurl
and push @git_base_push_urls, $Girocco::Config
::httpspushurl
;
166 our $cache_grpshared = 1;
167 our $cache_dir = $Girocco::Config
::projlist_cache_dir
;
169 our $lastactivity_file = "info/lastactivity";
171 $html_cache_actions{'summary'} = 1;
173 our $per_request_config = 0;
177 $feature{'pathinfo'}{'default'}=[1];
179 $feature{'forks'}{'default'}=[1];
181 $feature{'actions'}{'default'}=[
182 ('graphiclog', "@{[url_path($Girocco::Config::gitwebfiles)]}/git-browser/by-commit.html?r=%n", 'log'),
183 ('edit', "@{[url_path($Girocco::Config::webadmurl)]}/editproj.cgi?name=%e", 'refs'),
184 ('fork', "@{[url_path($Girocco::Config::webadmurl)]}/regproj.cgi?fork=%e", 'edit')