== The *rant* program
For a short usage message and a list of options invoke rant with the
--help option:
% rant --help
Usually you'll run rant by giving it the name of the task(s) to be
invoked as argument(s).
To get an overview for the project in the current working directory,
run rant with the --tasks (short form: -T) option:
% rant -T
rant # => test
rant package # Create packages for distribution.
rant doc # Generate documentation.
rant test # Run unit tests.
rant cov # Run all tests and generate coverage with rcov.
rant clean # Remove autogenerated files.
rant publish-docs # Publish html docs on RubyForge.
# Note: scp will prompt for rubyforge password.
This lists the "public" tasks for the project. The first line always
tells you the task(s) that will be invoked when no argument is given
to rant, in the above example, this would be the +test+ task.
When you invoke rant on the commandline it performs the following
steps (roughly):
1. Process commandline options and arguments.
An option starts with two dashes or one for the single letter
equivalent. Arguments of the form VAR=VAL set variables
available in the Rantfile(s). All other arguments are names of
tasks to be invoked.
2. Load Rantfile in working directory. Rantfiles with the following
names are recognized:
Rantfile
rantfile
root.rant
3. Calculate task dependencies and invoke required tasks. If no task
was given on the commandline, a task called "default" will be
invoked. If the "default" task doesn't exist, the first task will
be invoked.
=== Dry-Run
If you run rant in dry-run mode, it will print the actions it would
execute instead of actually executing them. This can be useful in
debugging your Rantfiles. To enable it, give the --dry-run,
option or its short form, -n, on the commandline.
Example Rantfile:
import "command"
task :install => "foo" do
sys.install "foo", "/usr/local/bin", :mode => 0755
end
gen Command, "foo", "foo.c", "cc -o $(>) $(<)"
Running rant in dry-run mode:
% rant -n
Executing "foo"
- SHELL
cc -o foo foo.c
Executing "install"
- Ruby Proc at Rantfile:3
Running rant in "normal" mode:
% rant
cc -o foo foo.c
install -c -m 0755 foo /usr/local/bin
Running rant in dry-run mode again:
% rant -n
Executing "install"
- Ruby Proc at Rantfile:3
== See also
Rant Overview::
README[link:files/README.html]
Independent from Rant? The rant-import command::
doc/rant-import.rdoc[link:files/doc/rant-import_rdoc.html]