mkcommitfeed.pl - Commit Log Feed Generator
mkcommitfeed.pl \
--file-name filename.atom \
--feed-url http://example.com/myproject/filename.atom \
--feed-title "MyProject Commit Log" \
--feed-lang langtag \
--feed-related-url "http://example.com/myproject/" \
--feed-license-url "http://example.com/myproject/license" \
--feed-rights "Copyright or copyleft statement" \
< changes-in-this-revision.txt
The mkcommitfeed.pl
script provides a command-line interface to update an Atom Feed that is intended for providing commit logs for a software developmenet project.
The script, when invoked, adds an Atom Entry that describes a change made to the project's repository.
A description for the change must be specified to the standard input. It is used as the plain text content of the atom:content element of the Entry for the change to add.
Non-ASCII characters are not supported in this version of this script. Maybe a future version of this script would support UTF-8.
There are command-line options for the script. Some of them are required, while the others are optional. As a general rule, an option whose name begins with --entry
specifies a property for the Entry to add, while an option whose name begins with --feed
specifies a property for the entire Feed. Option values for Feed properties might not be used when updating an existing Feed document.
Specifies the mail address of the person who made a change. It is used as the content of the atom:email
element of the atom:author
element of the Entry.
If this option is not specified, but the standard input includes a ChangeLog entry in the standard GNU format, then the mail address is taken from the ChangeLog entry. Otherwise, atom:email
element is not specified.
The option value must be an RFC 2822 addr-spec
that does not match obs-addr-spec
(i.e. standard email address format). Otherwise the generated Feed would be non-conforming.
Specifies the human readable name of the person who made a change. It is used as the content of the atom:name
element of the atom:author
element of the Entry.
If this option is not specified, but the standard input includes a ChangeLog entry in the standard GNU format, then the name is taken from the ChangeLog entry. If the standard input does not include a GNU format ChangeLog entry, then the --entry-author-name
option must be specified.
Non-ASCII characters are not supported in this version of this script.
--entry-content description
(optional)Specifies the description of the change. It is used as the content of the atom:content
element of the Entry, with type=text
.
If this option is specified, its value is used as if it were from the standard input and the actual standard input, if any, is ignored. If neither this option nor the standard input is specified, then the description is assumed as the empty string.
Non-ASCII characters are not supported in this version of this script.
--entry-title title
(optional)Specifies the title of the change. It is used as the content of the atom:title
element of the Entry, with type=text
.
If this option is not specified, then the date of the change, as well as the name of the author, is used as title.
Non-ASCII characters are not supported in this version of this script.
Specifies the mail address of the author of the Feed. It is used as the content of the atom:email
element of the atom:author
element of the Feed.
This option is ignored if the --feed-author-name
option is not specified.
If this option is not specified, atom:email
element is not specified.
The option value must be an RFC 2822 addr-spec
that does not match obs-addr-spec
(i.e. standard email address format). Otherwise the generated Feed would be non-conforming.
This option is ignored if the Feed already has an atom:author
element.
Specifies the human readable name of the author of the Feed. It is used as the content of the atom:name
element of the atom:author
element of the Feed.
If this option is not specified, the atom:author
element is not specified in the Feed.
Non-ASCII characters are not supported in this version of this script.
This option is ignored if the Feed already has an atom:author
element.
Specifies the URI for the author (e.g. URL of the Web page for the author). It is used as the content of the atom:uri
element of the atom:author
element of the Feed.
If the --feed-author-name
option is not specified, this option is ignored.
If this option is not specified, the atom:uri
element is not specified.
The option value must be a URI reference conforming to RFC 3986. It should be an absolute reference unless you understand what is the base URL that is used to resolve a relative reference. Non-ASCII characters (i.e. IRI references) are not supported in this version of this script.
This option is ignored if the Feed already has an atom:author
element.
--feed-lang langtag
(optional)Specifies the natural language used in textual parts of the Feed. It is used as the value of xml:lang
attribute of the root element of the Feed.
If this option is not specified, the default value i-default is used.
This option is ignored if the Feed already exists and has a atom:link
element.
--feed-license-url url
(optional)Specifies the URL that describes the license of the Feed. It is used as the href
attribute value of an atom:link
element whose rel
is license
.
If this option is not specified, the atom:link
element whose rel
is license
is not specified.
The option value must be a URI reference conforming to RFC 3986. It should be an absolute reference unless you understand what is the base URL that is used to resolve a relative reference. Non-ASCII characters (i.e. IRI references) are not supported in this version of this script.
This option is ignored if the Feed already has a atom:link
element.
Specifies a related URL for the Feed. Usually the URL for the project Web page should be specified. It is used as the href
attribute value of an atom:link
element whose rel
is related
.
If this option is not specified, the atom:link
element whose rel
is related
is not specified.
The option value must be a URI reference conforming to RFC 3986. It should be an absolute reference unless you understand what is the base URL that is used to resolve a relative reference. Non-ASCII characters (i.e. IRI references) are not supported in this version of this script.
This option is ignored if the Feed already has a atom:link
element.
--feed-rights license-terms
(optional)Specifies the license terms for the Feed. It is used as the content of the atom:rights
element of the Feed.
If there is the atom:rights
element exists, its value is replaced by the value of this option.
If this option is not specified, the atom:rights
element is not added. If there are already the atom:rights
element specified, however, it is not removed from the Feed.
Non-ASCII characters are not supported in this version of this script.
--feed-title title
(optional)Specifies the title of the Feed. It is used as the content of the atom:title
of the Feed.
If this option is not specified, the default value "ChangeLog" is used.
If there is Feed exists, then this option is ignored.
Non-ASCII characters are not supported in this version of this script.
--feed-url url
(required)Specifies the URL of the Feed itself. It is used in various places, such as in the href
attribute of the atom:link
element whose rel
is self
.
The option value must be a URI reference conforming to RFC 3986. It should be an absolute reference unless you understand what is the base URL that is used to resolve a relative reference. Non-ASCII characters (i.e. IRI references) are not supported in this version of this script.
--file-name path-to-atom-file
(required)Specifies the path to the file that contains the Atom Feed.
If the specified file is not found, then a new file is created. Otherwise, the existing file is loaded as an Atom Feed and then it is updated.
The file, if exists, must be encoded in UTF-8. The new content of the file generated by this script is encoded in UTF-8.
--help
Shows a help message and aborts.
For the execution of mkcommitfeed.pl
, the libiraries below are required, as well as Perl 5.10.0 or later:
manakai-core <https://suika.suikawiki.org/www/manakai-core/doc/web/>
.
Whatpm <https://suika.suikawiki.org/www/markup/html/whatpm/readme>
.
The latest version of this script is available in the Git repository: <https://suika.suikawiki.org/gate/git/wi/vc/cvscommitfeed.git/tree>
.
The mkcommitfeed.pl
Web site https://suika.suikawiki.org/commitfeed/readme.
Wakaba <wakaba@suikawiki.org>.
This module was originally developed as part of Whatpm https://suika.suikawiki.org/www/markup/html/whatpm/readme.
An out-of-date Atom Feed for updates of this script, which was itself generated by this script, is available at https://suika.suikawiki.org/commitfeed/commitfeed-commit.
The script is no longer maintained as of 2012. This script is considered obsolete, as Web interfaces for modern version management systems tend to have their own feeds.
Copyright 2008-2012 Wakaba <wakaba@suikawiki.org>.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.