
		Makelog by Tero Kivinen <kivinen@iki.fi>
		www-site: http://www.acr.fi/makelog/

Description
-----------

Makelog is a program that creates readable daily/weekly reports of the
cvs log entries. It supports either text format that can be sent via
email or html format that can be stored to the web server. It also
supports getting cvs logs of the partial cvs tree so large cvs tree
can be split in to the several separate pieces and each cvs log is
generated separately for each piece. 


Compilation
-----------

Unpack the distribution by saying

	tar zxvf makelog-x.x.tar.gz

or

	gzip -cd | tar xvf -

After the distribution has been unpacked cd to the directory created
and run the configure script:

	cd makelog-x.x
	./configure

After that just say make install to install the package.


How to use makelog
------------------

By default makelog does not do anything, it just prints out usage and
exit. There is two ways to configure the makelog. First one is to give
all configuration data from the command line using options. Second one
is to put all configuration data to the configuration file and give
that with --config option to the makelog.

The configuration file has format that consist of lines containing

	keyword=value
	keyword="value1 value2 value3"
	keyword= Long text containing spaces \n\
		and newlines etc.
	keyword=val\
ue
	keyword=value containing " and \.
	keyword="value ending with \"
	keyword

If the line ends with backslash then it means that the line contines
on the next line. If there are no whitespace before backslash and
beginning of the next line then the string is concatenated without
whitespaces together. If there is whitespaces between then all of the
whitespaces are removed and replaced with one space. You can also use
\n and \t to get newline and tab characters to the variable.

You can include the values to the double quotes in which case they are
removed. The only real reason to use that format is when you want to
end the value with backslash (another option would be to write it
<backslash> <space>, but the space might get lost). 


Configuration options
---------------------

config	config-file

	Specifies the config file to be used. The file 
	$HOME/.makelogrc is read always before this option is used.

cvsroot	cvs-root-dir

	Specifies the value of the CVSROOT environment variable. This
	option (or setting of the CVSROOT environment variable) is
	mandatory.

top	top-work-dir

	Specifies the work directory used in the progress. The makelog
	first cvs checkouts the specified directories to this
	directory and then runs cvs log in those directories. It also
	stores the last run time to this directory inside the file
	last-time, so when the script is next time run it can give out
	the cvs log entries since last run. Everything inside this
	directory is deleted at the beginning of the run, so point
	this to empty directory when beginning to use this script.

users	user-email-addresses

	List of email address or mailing list where the text report is
	sent to. The format of this must be something that is accepted
	by the sendmail inside the "To" header. If this is not given
	then no email reports are sent. 

admin	admin-email-addresses

	List of adminstrator email addresses. All mails sent to the
	users have Reply-To pointing to the adminstrator, and
	adminstrator will also get mail even when there is no changes
	in the CVS repository.

html	base-html-directory

	This is base html directory where the html files are stored.
	If there is changes in the CVS repository and this is set then
	file containing html-report is stored under the name of
	yyyy-mm-dd.hh:mm:ss.html to this directory. The symlink
	latest.html is also set to point to the latest file created in
	the directory.

cvslog	cvs-log-dir
cvsco	cvs-co-dir

	Specifies the directories which is used to when running cvs
	checkout and cvs log commands. The cvsco options is not
	normally needed as it defaults to the same value than cvslog.
	Also the cvslog must be proper subset of the cvsco, i.e you
	can use cvsco to check more data out from the cvs repository,
	but everything included in the cvslog must be checked out
	otherwise logs are incorrect.

cvslocallog	cvs-local-log-dir
cvslocalco	cvs-local-co-dir

	Additional directories checked out and used in the cvs log
	execpt these directories are given -l option when cvs is run,
	i.e only the local contents of the directories is checked out
	and includeded in the logs. This can be used when you want to
	have split logs where you have for example the src/foobar and
	src/zappa directories completely and then also the toplevel
	src makefiles only. You include src/foobar and src/zappa to
	the cvslog and src to the cvslocallog.

disclaimer	disclaimer-text
disclaimerfile	disclaimer-filename

	Disclaimer to be added before the actual email message.

style		stylesheet-url

	Url to the stylesheet of the main page.

top_html	Html-text

	Text to put on the top of the html page (can be navigation
	links etc).

summary_extra_match	regexp
summary_extra_subst	subtitution

	Replaces string in the "filaname!author!revision" string with
	the substitution and puts that after the revisions list in the
	summary by authors block.


combined_extra_match	regexp
combined_extra_subst	subtitution

	Replaces string in the "filaname!author!revision" string with
	the substitution and puts that after the lines entry in the
	combined list of identical log entries block.

individual_extra_match	regexp
individual_extra_subst	subtitution

	Replaces string in the "filaname!author!revision" string with
	the substitution and puts that after the lines entry in the
	individual log entries block.

files_extra_match	regexp
files_extra_subst	subtitution

	Replaces string in the "filaname!!" string with
	the substitution and puts that after the authors list in the
	summary of modified files block.


Example configuration file
--------------------------

cvsroot = /ssh/CVS
top = /ssh/cvs-log/apps-utils
users = cvs-log-apps-util@ssh.fi
admin = kivinen@ssh.fi
html = /ssh/www/cvs-log/apps-utils
cvslog = src/apps/certutils \
	src/apps/ldaputils \
	src/apps/cryptutils
cvslocallog = src/apps
disclaimer = This email contains confidential material of SSH.\n \
	Do not redistribute.
style = /style.css


Reporting bugs
--------------

If you find a bug or have a feature request send them to
makelog-bugs@acr.fi.

					Tero Kivinen
					kivinen@iki.fi
					http://www.iki.fi/kivinen/
