will you be able to disable the stdout? right now mikes patch prints
out a lot of stuff as it loads all the things in .caprc, which is kind
of annoying.

On Dec 23, 8:15 am, Jamis Buck <[EMAIL PROTECTED]> wrote:
Mike,

Alright, this finally made it in (as of revision 5774). I didn't use
your implementation directly, though, as there were a few issues I
had to think about.

Here's how dotfiles work in edge capistrano:

* The dotfile, by default, is called ".caprc" and will be searched
for in your home directory. On Unices, this is the ENV["HOME"]
variable. On windows, it is "#{ENV["HOMEDRIVE"]}#{ENV["HOMEPATH"]}".
The environment is searched in that order (so if you have HOME set on
Windows, it will be used), and if none is found the root directory is
used.

* You can override the path to the config file via the -c switch:
"cap -c /path/to/.customrc ..."

* You can specify that you don't want to use the config file at all
via the -x switch: "cap -x ..."

* The file will be loaded immediately after the "-S" options are
processed. Thus, variables you set via -S will be available to
the .caprc stuff.

The major difference between the patch you submitted and the way I
implemented it is that the .caprc will always be loaded, whether or
not other recipe files are specified. (As I mentioned above, you can
skip the config loading with -x.)

Thanks for the idea, Mike, and sorry that took so long to get into
trunk!

- Jamis

On Nov 21, 2006, at 6:02 AM, mbailey wrote:



> I'm loving capistrano. I'm using it for sysadmin tasks as well as
> rails
> deployment.

> I want to be free to use it from whichever directory I happen to be in
> and still have access to my favourite recipes. I want to be able to
> run
> commands on server groups that span projects. I want to use recipe
> gems
> that other developers may not have on their system so requiring them
> from a shared deploy.rb may not be appropriate.

> Below is a small patch that loads the contents of ~/.caprc before
> loading the default recipe file (usually config/deploy.rb).

> An example of my .caprc is below:

> # RECIPE GEMS - the easiest way I can think of to enable recipe gems

> require 'railsmachine/recipes'
> require 'deprec'

> # SSH OPTIONS - only set this once on workstation rather than on each
> project
> ssh_options[:keys] = %w(/Users/mbailey/.ssh/id_dsa)

> # ROLES - useful for getting cap shell on horizontal slice of systems
> #               enables commands like this to span projects when
> not in
> a project dir:
> #               export ROLES=scm && cap -v shell
> role :scm, 'scm01', 'scm02', 'scm03'
> role :rails, 'r01', 'r02', 'r03', 'r04', 'r05'
> role :db, 'db01', 'db02', 'db03', 'db04'

> Does it look acceptable to go into Capistrano? The main benefit I
> could
> see is making
> it more convenient for users to run 'gem install <recipename>' and
> then
> update their
> ~/.caprc to make the recipes available.

> thanks,

> Mike

> inum:~/work/capistrano/lib/capistrano mbailey$ svn diff
> Index: cli.rb
> ===================================================================
> --- cli.rb      (revision 5603)
> +++ cli.rb      (working copy)
> @@ -289,6 +289,10 @@
>        end

>        def look_for_default_recipe_file!
> +        # load overridable user defaults (if present)
> +        if File.exist?(caprc = File.join(ENV['HOME'],'.caprc'))
> +          @options[:recipes] << caprc
> +        end
>          DEFAULT_RECIPES.each do |file|
>            if File.exist?(file)
>              @options[:recipes] << file

> inum:~/work/capistrano/lib/capistrano mbailey$ rake test
> (in /Users/mbailey/work/capistrano)
> /usr/local/bin/ruby -Ilib -rubygems
> "/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/
> rake_test_loader.rb"
> "test/actor_test.rb" "test/command_test.rb"
> "test/configuration_test.rb" "test/ssh_test.rb" "test/scm/cvs_test.rb"
> "test/scm/subversion_test.rb"
> Loaded suite
> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/rake_test_loader
> Started
> ......................................................................
> ......................
> Finished in 0.039947 seconds.

> 92 tests, 192 assertions, 0 failures, 0 errors


--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---

Reply via email to