detroit-rubyforge
- utilize rubyforge services with detroit
The RubyForge plug-in for Detroit provides services tied to your
project's rubyforge.org account. Presently it only supports
website publishing and uploading packages. This plugin uses the
forge
gem, not the more common rubyforge
gem, and rsync
to upload website files.
NOTE: RubyForge is fairly passe since the rise of GitHub, so this plug-in is not being actively maintained any loger. If someone is a die-hard RubyForge supporter please considering adopting this project, as you are probably one of very few, if not the only one, who will be using it.
The following options can be used in Detroit assembly files for defining a RubyForge service.
unixname
- The project's unixname.
groupid
- The Project's group id number.
username
- Your Rubyforge username, granting access to the project.
Default comes from ENV['RUBYFORGE_USERNAME']
.
package
- The package name. Deafult is taken from project metadata.
version
- Version to release. Default is taken from project metadata.
notelog
- File that holds the current release notes.
changelog
- File that hold the current change log. If not provided then
the changelog will# taken from the bottom of the notelog split on a '---'
or '####' marker.
release-template
- The release name, using an %s
for inserting the
version number, e.g. myapp-%s
.
private_release
- Is this a private release? Default it false
.
sitemap
- List of directories and files to transfer.
If a single directory entry is given then the contents
of that directory will be transfered. Defaults to site
,
website
or doc
.
site_delete
- Should the site be published wholesale, removing
any other content present at the upload destination?
Note, this is the same as setting +site_rsync+ to '--del-after'.
site_rsync
- Used to specify any additional rsync options.
When using thi plug-in, your RubyForge passwrd will be gathered from
the RUBYFORGE_PASSWORD
environment variable. If this is not present
then it will be prompted for on the command line.
If you keep your website in a project subdirectory called either
site
, web
, website
or www
, and failing those, doc
or docs
,
then the defaults settings are likely sufficiant. Just provide a
unixname.
rubyforge:
unixname: myapp
If the files to copy to the website are more entailed, use a mapping of
source to destination. For example, if we want to copy all the files in
site/
to gh-pages, but also all the files in doc/
to a directory
called doc
we could use:
rubyforge:
unixname: myapp
sitemap:
site: .
doc: doc
However, this isn't usually necessary, since a soft link could be used instead.
$ ln -s doc site/doc
Soft-links will be transfered as if the real file present. So a more complex
sitemap
is really only needed when more specific selections or complex
globs are needed.
For more information:
Copyright (c) 2010 Thomas Sawyer, Rubyworks
Detroit GitHub is distributable in accordance with the GPLv3 license.
detroit(1), forge(1), rubyforge(1)