Skip to content

Instantly share code, notes, and snippets.

@mrchrisadams
Created July 10, 2012 15:47
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrchrisadams/3084229 to your computer and use it in GitHub Desktop.
Save mrchrisadams/3084229 to your computer and use it in GitHub Desktop.
Capistrano::Configuration.instance.load do
namespace :deploy do
namespace :amee do
namespace :ss3 do
desc "[internal] Copies ss3.yml file to app servers"
task :upload, :except => { :no_release => true } do
ss3_path = Rails.root.join("config", "ss3.yml")
# this errors out like so:
# gems/capistrano-2.11.2/lib/capistrano/configuration/namespaces.rb:110:in `block in define_task': wrong number of arguments (2 for 0) (ArgumentError)
upload (ss3_path), "#{shared_path}/config/ss3.yml"
# this works
put (File.read(ss3_path)), "#{shared_path}/config/ss3.yml"
end
desc "[internal] Updates the symlink for ss3.yml to the just deployed release."
task :symlink, :except => { :no_release => true } do
run "ln -nfs #{shared_path}/config/ss3.yml #{release_path}/config/ss3.yml"
end
end
end
end
end
@jiehanzheng
Copy link

I got this error too! Did you figure out why?

@corporealfunk
Copy link

See this: http://irclogger.com/.capistrano/2012-04-12

You cannot be in the namespace deploy and call upload successfully. Try using your upload call in a different top level namespace

@craigp
Copy link

craigp commented Sep 26, 2012

Thanks for the info! This was driving me nuts..

@lwe
Copy link

lwe commented Dec 13, 2012

Bit late to the party, but changing upload to top.upload works perfectly here... i.e. to ensure it references the upload method from the correct namespace.

@DiveInto
Copy link

A life save, thanks ;-)

@AndreyKozlov1984
Copy link

Thanks a lot. Made me mad for 15 minutes but after reading this gist it is a relief.

@FineLineAutomation
Copy link

This helped me too. It was working perfectly until I refactored my local asset precompile task out to a Capistrano recipes gem. Using top.upload fixed the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment