summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile66
-rw-r--r--cgit.css16
-rw-r--r--cgitrc.5.txt10
m---------git0
-rw-r--r--ui-stats.c2
5 files changed, 78 insertions, 16 deletions
diff --git a/Makefile b/Makefile
index 31d88ef..a988751 100644
--- a/Makefile
+++ b/Makefile
@@ -1,34 +1,46 @@
CGIT_VERSION = v0.8.3.4
CGIT_SCRIPT_NAME = cgit.cgi
CGIT_SCRIPT_PATH = /var/www/htdocs/cgit
CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH)
CGIT_CONFIG = /etc/cgitrc
CACHE_ROOT = /var/cache/cgit
+prefix = /usr
+libdir = $(prefix)/lib
+filterdir = $(libdir)/cgit/filters
+docdir = $(prefix)/share/doc/cgit
+htmldir = $(docdir)
+pdfdir = $(docdir)
+mandir = $(prefix)/share/man
SHA1_HEADER = <openssl/sha.h>
-GIT_VER = 1.7.3
+GIT_VER = 1.7.4
GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2
INSTALL = install
+MAN5_TXT = $(wildcard *.5.txt)
+MAN_TXT = $(MAN5_TXT)
+DOC_MAN5 = $(patsubst %.txt,%,$(MAN5_TXT))
+DOC_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))
+DOC_PDF = $(patsubst %.txt,%.pdf,$(MAN_TXT))
# Define NO_STRCASESTR if you don't have strcasestr.
#
# Define NO_OPENSSL to disable linking with OpenSSL and use bundled SHA1
# implementation (slower).
#
# Define NEEDS_LIBICONV if linking with libc is not enough (eg. Darwin).
#
# Define NO_C99_FORMAT if your formatted IO functions (printf/scanf et.al.)
# do not support the 'size specifiers' introduced by C99, namely ll, hh,
# j, z, t. (representing long long int, char, intmax_t, size_t, ptrdiff_t).
# some C compilers supported these specifiers prior to C99 as an extension.
#
#-include config.mak
#
# Platform specific tweaks
#
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not')
@@ -90,49 +102,50 @@ OBJECTS += ui-atom.o
OBJECTS += ui-blob.o
OBJECTS += ui-clone.o
OBJECTS += ui-commit.o
OBJECTS += ui-diff.o
OBJECTS += ui-log.o
OBJECTS += ui-patch.o
OBJECTS += ui-plain.o
OBJECTS += ui-refs.o
OBJECTS += ui-repolist.o
OBJECTS += ui-shared.o
OBJECTS += ui-snapshot.o
OBJECTS += ui-ssdiff.o
OBJECTS += ui-stats.o
OBJECTS += ui-summary.o
OBJECTS += ui-tag.o
OBJECTS += ui-tree.o
OBJECTS += vector.o
ifdef NEEDS_LIBICONV
EXTLIBS += -liconv
endif
.PHONY: all libgit test install uninstall clean force-version get-git \
- doc man-doc html-doc clean-doc
+ doc clean-doc install-doc install-man install-html install-pdf \
+ uninstall-doc uninstall-man uninstall-html uninstall-pdf
all: cgit
VERSION: force-version
@./gen-version.sh "$(CGIT_VERSION)"
-include VERSION
CFLAGS += -g -Wall -Igit
CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)'
CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"'
CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"'
CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"'
GIT_OPTIONS = prefix=/usr
ifdef NO_ICONV
CFLAGS += -DNO_ICONV
endif
ifdef NO_STRCASESTR
CFLAGS += -DNO_STRCASESTR
endif
ifdef NO_C99_FORMAT
@@ -146,49 +159,86 @@ else
endif
cgit: $(OBJECTS) libgit
$(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o cgit $(OBJECTS) $(EXTLIBS)
cgit.o: VERSION
ifneq "$(MAKECMDGOALS)" "clean"
-include $(OBJECTS:.o=.d)
endif
libgit:
$(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) NO_CURL=1 $(GIT_OPTIONS) libgit.a
$(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) NO_CURL=1 $(GIT_OPTIONS) xdiff/lib.a
test: all
$(QUIET_SUBDIR0)tests $(QUIET_SUBDIR1) all
install: all
$(INSTALL) -m 0755 -d $(DESTDIR)$(CGIT_SCRIPT_PATH)
$(INSTALL) -m 0755 cgit $(DESTDIR)$(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
$(INSTALL) -m 0755 -d $(DESTDIR)$(CGIT_DATA_PATH)
$(INSTALL) -m 0644 cgit.css $(DESTDIR)$(CGIT_DATA_PATH)/cgit.css
$(INSTALL) -m 0644 cgit.png $(DESTDIR)$(CGIT_DATA_PATH)/cgit.png
+ $(INSTALL) -m 0755 -d $(DESTDIR)$(filterdir)
+ $(INSTALL) -m 0755 filters/* $(DESTDIR)$(filterdir)
+
+install-doc: install-man install-html install-pdf
+
+install-man: doc-man
+ $(INSTALL) -m 0755 -d $(DESTDIR)$(mandir)/man5
+ $(INSTALL) -m 0644 $(DOC_MAN5) $(DESTDIR)$(mandir)/man5
+
+install-html: doc-html
+ $(INSTALL) -m 0755 -d $(DESTDIR)$(htmldir)
+ $(INSTALL) -m 0644 $(DOC_HTML) $(DESTDIR)$(htmldir)
+
+install-pdf: doc-pdf
+ $(INSTALL) -m 0755 -d $(DESTDIR)$(pdfdir)
+ $(INSTALL) -m 0644 $(DOC_PDF) $(DESTDIR)$(pdfdir)
uninstall:
rm -f $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
rm -f $(CGIT_DATA_PATH)/cgit.css
rm -f $(CGIT_DATA_PATH)/cgit.png
-doc: man-doc html-doc pdf-doc
+uninstall-doc: uninstall-man uninstall-html uninstall-pdf
+
+uninstall-man:
+ @for i in $(DOC_MAN5); do \
+ rm -fv $(DESTDIR)$(mandir)/man5/$$i; \
+ done
+
+uninstall-html:
+ @for i in $(DOC_HTML); do \
+ rm -fv $(DESTDIR)$(htmldir)/$$i; \
+ done
+
+uninstall-pdf:
+ @for i in $(DOC_PDF); do \
+ rm -fv $(DESTDIR)$(pdfdir)/$$i; \
+ done
+
+doc: doc-man doc-html doc-pdf
+doc-man: doc-man5
+doc-man5: $(DOC_MAN5)
+doc-html: $(DOC_HTML)
+doc-pdf: $(DOC_PDF)
-man-doc: cgitrc.5.txt
- a2x -f manpage cgitrc.5.txt
+%.5 : %.5.txt
+ a2x -f manpage $<
-html-doc: cgitrc.5.txt
- a2x -f xhtml --stylesheet=cgit-doc.css cgitrc.5.txt
+$(DOC_HTML): %.html : %.txt
+ a2x -f xhtml --stylesheet=cgit-doc.css $<
-pdf-doc: cgitrc.5.txt
+$(DOC_PDF): %.pdf : %.txt
a2x -f pdf cgitrc.5.txt
clean: clean-doc
rm -f cgit VERSION *.o *.d
clean-doc:
rm -f cgitrc.5 cgitrc.5.html cgitrc.5.pdf cgitrc.5.xml cgitrc.5.fo
get-git:
curl $(GIT_URL) | tar -xj && rm -rf git && mv git-$(GIT_VER) git
diff --git a/cgit.css b/cgit.css
index 0c88b65..a2a685b 100644
--- a/cgit.css
+++ b/cgit.css
@@ -721,25 +721,39 @@ table.ssdiff td.hunk {
table.ssdiff td.head {
border-top: solid 1px #aaa;
border-bottom: solid 1px #aaa;
}
table.ssdiff td.head div.head {
font-weight: bold;
color: black;
}
table.ssdiff td.foot {
border-top: solid 1px #aaa;
border-left: none;
border-right: none;
border-bottom: none;
}
table.ssdiff td.space {
border: none;
}
table.ssdiff td.space div {
min-height: 3em;
-} \ No newline at end of file
+}
+
+/* Syntax highlighting */
+table.blob .num { color:#2928ff; }
+table.blob .esc { color:#ff00ff; }
+table.blob .str { color:#ff0000; }
+table.blob .dstr { color:#818100; }
+table.blob .slc { color:#838183; font-style:italic; }
+table.blob .com { color:#838183; font-style:italic; }
+table.blob .dir { color:#008200; }
+table.blob .sym { color:#000000; }
+table.blob .kwa { color:#000000; font-weight:bold; }
+table.blob .kwb { color:#830000; }
+table.blob .kwc { color:#000000; font-weight:bold; }
+table.blob .kwd { color:#010181; }
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 75b6584..8e51ca5 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -410,128 +410,128 @@ repo.url::
REPOSITORY-SPECIFIC CGITRC FILE
-------------------------------
When the option "scan-path" is used to auto-discover git repositories, cgit
will try to parse the file "cgitrc" within any found repository. Such a
repo-specific config file may contain any of the repo-specific options
described above, except "repo.url" and "repo.path". Additionally, the "filter"
options are only acknowledged in repo-specific config files when
"enable-filter-overrides" is set to "1".
Note: the "repo." prefix is dropped from the option names in repo-specific
config files, e.g. "repo.desc" becomes "desc".
EXAMPLE CGITRC FILE
-------------------
....
# Enable caching of up to 1000 output entriess
cache-size=1000
# Specify some default clone prefixes
-clone-prefix=git://foobar.com ssh://foobar.com/pub/git http://foobar.com/git
+clone-prefix=git://example.com ssh://example.com/pub/git http://example.com/git
# Specify the css url
css=/css/cgit.css
# Show extra links for each repository on the index page
enable-index-links=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
# Add a cgit favicon
favicon=/favicon.ico
# Use a custom logo
logo=/img/mylogo.png
# Enable statistics per week, month and quarter
max-stats=quarter
# Set the title and heading of the repository index page
-root-title=foobar.com git repositories
+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 foobar.com on the index page
+# 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
##
## 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=/pub/git/foo.git
repo.desc=the master foo repository
-repo.owner=fooman@foobar.com
+repo.owner=fooman@example.com
repo.readme=info/web/about.html
repo.url=bar
repo.path=/pub/git/bar.git
repo.desc=the bars for your foo
-repo.owner=barman@foobar.com
+repo.owner=barman@example.com
repo.readme=info/web/about.html
# The next repositories will be displayed under the 'extras' heading
section=extras
repo.url=baz
repo.path=/pub/git/baz.git
repo.desc=a set of extensions for bar users
repo.url=wiz
repo.path=/pub/git/wiz.git
repo.desc=the wizard of foo
# Add some mirrored repositories
section=mirrors
repo.url=git
repo.path=/pub/git/git.git
repo.desc=the dscm
diff --git a/git b/git
-Subproject 87b50542a08ac6caa083ddc376e674424e37940
+Subproject 7ed863a85a6ce2c4ac4476848310b8f917ab41f
diff --git a/ui-stats.c b/ui-stats.c
index 946a6ea..2a0c174 100644
--- a/ui-stats.c
+++ b/ui-stats.c
@@ -1,26 +1,24 @@
-#include <string-list.h>
-
#include "cgit.h"
#include "html.h"
#include "ui-shared.h"
#include "ui-stats.h"
#ifdef NO_C99_FORMAT
#define SZ_FMT "%u"
#else
#define SZ_FMT "%zu"
#endif
#define MONTHS 6
struct authorstat {
long total;
struct string_list list;
};
#define DAY_SECS (60 * 60 * 24)
#define WEEK_SECS (DAY_SECS * 7)
static void trunc_week(struct tm *tm)
{
time_t t = timegm(tm);