itsme213 said:
I have a build that I could structure as a large number of tasks (not
file-based) with the following pattern:
task :a do
do stuff with <the target for :a> with <the params for :a>
end
task :b do
do stuff for <the target for :b> with <the params for :b>
end
I don't think rules are the right tool here for me. Would it make sense
for
rake tasks to optionally take parameters:
task :a do |x, y, z|
do stuff with x y z
end
When a task action is executed, it is passed the task that is currently
executing. for example
task :a do |t|
puts t.name # or other interesting stuff about the current task
end
And would it make sense for rake to pick up x, y, z (and :a) from command
line parameters ?
Parameters from the command line of the form name=value can be found in
the environment hash. For example, invoking rake like this ...
rake test TEST=name_of_test_file.rb
Means that you can find the name of the test with ...
task :test do
file = ENV['TEST']
# do something with 'file'
end
The command line args are put into the ENV hash so that you can specify
the value as either an environment variable or on the command line (and
the command line overrides any existing environment variable).
If the dependency mechanism :a => [:b] had some way to know which of :a's
xyz params, if any, to pass on to :b, would this task-flow network with
parameters be useful more broadly?
I'm a little unclear on how this would work. Do you have a specific
example in mind?
···
--
-- Jim Weirich jim@weirichhouse.org http://onestepback.org
-----------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct,
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)