- Jamis
On Oct 24, 2007, at 11:33 AM, Hendy Irawan wrote:
Jamis Buck wrote:You know, something like this should probably go into Capistrano core...cap isn't like Rails, with the magic auto-loading. You need to manually require the base class: require 'capistrano/recipes/deploy/scm/base' - Jamis On Oct 24, 2007, at 9:19 AM, Chuck Remes wrote:I checked through the list archives I see that capistrano requiresthe usage of a "real" SCM. I have a very specific requirement where I need to deploy the contents of a directory to a set of servers. Basedon the advice given in those earlier threads, I am writing a custom SCM to mimic a "cp" so I can leverage the existing code in the framework to handle the remainder of the deployment. However, I am having a problem getting my custom class to load. Forthe sake of simplicity early on, I am putting the code into ~/.caprc.The approach I took is I subclassed Capistrano::Deploy::SCM::Base andoverrode the +checkout+ method. When I run 'cap -T' just to verify capistrano is still working, I get a NameError. Here it is: /Users/cremes/.caprc:8:in `load': uninitialized constant #<Class: 0x14b55f4>::Capistrano::Deploy::SCM::Base (NameError) from /Users/cremes/lib/ruby/gems/1.8/gems/capistrano-2.1.0/ lib/capistrano/configuration/loading.rb:173:in `load_from_file' from /Users/cremes/lib/ruby/gems/1.8/gems/capistrano-2.1.0/ lib/capistrano/configuration/loading.rb:89:in `load' from /Users/cremes/lib/ruby/gems/1.8/gems/capistrano-2.1.0/ lib/capistrano/configuration/loading.rb:86:in `load' from /Users/cremes/lib/ruby/gems/1.8/gems/capistrano-2.1.0/ lib/capistrano/configuration/loading.rb:86:in `each' from /Users/cremes/lib/ruby/gems/1.8/gems/capistrano-2.1.0/ lib/capistrano/configuration/loading.rb:86:in `load' from /Users/cremes/lib/ruby/gems/1.8/gems/capistrano-2.1.0/ lib/capistrano/cli/execute.rb:60:in `load_recipes' from /Users/cremes/lib/ruby/gems/1.8/gems/capistrano-2.1.0/ lib/capistrano/cli/execute.rb:28:in `execute!' from /Users/cremes/lib/ruby/gems/1.8/gems/capistrano-2.1.0/ lib/capistrano/cli/execute.rb:14:in `execute' from /Users/cremes/lib/ruby/gems/1.8/gems/capistrano-2.1.0/ bin/cap:4 from /Users/cremes/bin/cap:16:in `load' from /Users/cremes/bin/cap:16 Here is the code it is complaining about (the entire contents of .caprc): module Capistrano module Deploy module SCM# Implements the Capistrano SCM interface for using a plain old# directory to do deployment. It fakes out all the usual SCM commands # so we can use the other infrastructure to copy & deploy a tarball class Directory < Base # Sets the default command name for this SCM. Users may override this # by setting the :scm_command variable. default_command "cp"# Returns the command that will check out the given revisionto the # given destination. def checkout(revision, destination) switches = '-Rp' scm :cp, verbose, switches, repository, destination end end end #SCM end #Deploy end #CapistranoI know I am getting this because of a file load ordering issue, but Idon't know where I should place this code. What is the recommended approach for creating custom SCMs? Environment: OSX 10.4.10 ruby 1.8.6 from macports capistrano-2.1.0 gemI wished something like this since ages ago :-D --~--~---------~--~----~------------~-------~--~----~To unsubscribe from this group, send email to capistrano- [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/ group/capistrano-~----------~----~----~----~------~----~------~--~---
smime.p7s
Description: S/MIME cryptographic signature
