capper 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,48 @@
1
+ # rcov generated
2
+ coverage
3
+
4
+ # rdoc generated
5
+ rdoc
6
+
7
+ # yard generated
8
+ doc
9
+ .yardoc
10
+
11
+ # bundler
12
+ .bundle
13
+
14
+ # jeweler generated
15
+ pkg
16
+
17
+ # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
18
+ #
19
+ # * Create a file at ~/.gitignore
20
+ # * Include files you want ignored
21
+ # * Run: git config --global core.excludesfile ~/.gitignore
22
+ #
23
+ # After doing this, these files will be ignored in all your git projects,
24
+ # saving you from having to 'pollute' every project you touch with them
25
+ #
26
+ # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
27
+ #
28
+ # For MacOS:
29
+ #
30
+ #.DS_Store
31
+
32
+ # For TextMate
33
+ #*.tmproj
34
+ #tmtags
35
+
36
+ # For emacs:
37
+ #*~
38
+ #\#*
39
+ #.\#*
40
+
41
+ # For vim:
42
+ #*.swp
43
+
44
+ # For redcar:
45
+ #.redcar
46
+
47
+ # For rubinius:
48
+ #*.rbc
data/Gemfile CHANGED
@@ -1,10 +1,3 @@
1
1
  source :rubygems
2
2
 
3
- gem 'erubis'
4
-
5
- group :development do
6
- gem "shoulda", ">= 0"
7
- gem "bundler", "~> 1.0.0"
8
- gem "jeweler", "~> 1.6.4"
9
- gem "rcov", ">= 0"
10
- end
3
+ gemspec
@@ -1,22 +1,34 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ capper (0.1.0)
5
+ capistrano
6
+ capistrano_colors
7
+ erubis
8
+
1
9
  GEM
2
10
  remote: http://rubygems.org/
3
11
  specs:
12
+ capistrano (2.6.0)
13
+ highline
14
+ net-scp (>= 1.0.0)
15
+ net-sftp (>= 2.0.0)
16
+ net-ssh (>= 2.0.14)
17
+ net-ssh-gateway (>= 1.1.0)
18
+ capistrano_colors (0.5.4)
4
19
  erubis (2.7.0)
5
- git (1.2.5)
6
- jeweler (1.6.4)
7
- bundler (~> 1.0)
8
- git (>= 1.2.5)
9
- rake
10
- rake (0.9.2)
11
- rcov (0.9.9)
12
- shoulda (2.11.3)
20
+ highline (1.6.2)
21
+ net-scp (1.0.4)
22
+ net-ssh (>= 1.99.1)
23
+ net-sftp (2.0.5)
24
+ net-ssh (>= 2.0.9)
25
+ net-ssh (2.1.4)
26
+ net-ssh-gateway (1.1.0)
27
+ net-ssh (>= 1.99.1)
13
28
 
14
29
  PLATFORMS
15
30
  ruby
16
31
 
17
32
  DEPENDENCIES
18
33
  bundler (~> 1.0.0)
19
- erubis
20
- jeweler (~> 1.6.4)
21
- rcov
22
- shoulda
34
+ capper!
File without changes
@@ -1,8 +1,8 @@
1
- = capper
1
+ # capper
2
2
 
3
3
  Capper is a collection of opinionated Capistrano recipes
4
4
 
5
- == Contributing to capper
5
+ ## Contributing to capper
6
6
 
7
7
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
8
8
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
@@ -10,8 +10,7 @@ Capper is a collection of opinionated Capistrano recipes
10
10
  * Start a feature/bugfix branch
11
11
  * Commit and push until you are happy with your contribution
12
12
 
13
- == Copyright
13
+ ## Copyright
14
14
 
15
15
  Copyright (c) 2011 Benedikt Böhm. See LICENSE.txt for
16
16
  further details.
17
-
data/Rakefile CHANGED
@@ -1,28 +1,10 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'rubygems'
4
- require 'bundler'
5
4
 
6
5
  begin
7
- Bundler.setup(:default, :development)
8
- rescue Bundler::BundlerError => e
9
- $stderr.puts e.message
10
- $stderr.puts "Run `bundle install` to install missing gems"
11
- exit e.status_code
6
+ require 'bundler'
7
+ Bundler::GemHelper.install_tasks
8
+ rescue LoadError
9
+ $stderr.puts "Bundler not installed. You should install it with: gem install bundler"
12
10
  end
13
-
14
- require 'rake'
15
- require 'jeweler'
16
-
17
- Jeweler::Tasks.new do |gem|
18
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
19
- gem.name = "capper"
20
- gem.homepage = "http://github.com/hollow/capper"
21
- gem.license = "MIT"
22
- gem.summary = %Q{Capistrano extensions for easy deployment}
23
- gem.description = %Q{Capistrano extensions for easy deployment}
24
- gem.email = "bb@xnull.de"
25
- gem.authors = ["Benedikt Böhm"]
26
- end
27
-
28
- Jeweler::RubygemsDotOrgTasks.new
@@ -1,70 +1,23 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
1
  Gem::Specification.new do |s|
7
- s.name = %q{capper}
8
- s.version = "0.1.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Benedikt Böhm"]
12
- s.date = %q{2011-07-12}
13
- s.description = %q{Capistrano extensions for easy deployment}
14
- s.email = %q{bb@xnull.de}
15
- s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".rvmrc",
22
- "Gemfile",
23
- "Gemfile.lock",
24
- "LICENSE.txt",
25
- "README.rdoc",
26
- "Rakefile",
27
- "VERSION",
28
- "capper.gemspec",
29
- "lib/capper.rb",
30
- "lib/capper/bundler.rb",
31
- "lib/capper/git.rb",
32
- "lib/capper/rails.rb",
33
- "lib/capper/rvm.rb",
34
- "lib/capper/templates/unicorn.rb.erb",
35
- "lib/capper/templates/unicorn.sh.erb",
36
- "lib/capper/unicorn.rb",
37
- "lib/capper/utils/templates.rb",
38
- "lib/capper/whenever.rb"
39
- ]
40
- s.homepage = %q{http://github.com/hollow/capper}
2
+ s.name = "capper"
3
+ s.version = "0.2.0"
4
+ s.platform = Gem::Platform::RUBY
41
5
  s.licenses = ["MIT"]
42
- s.require_paths = ["lib"]
43
- s.rubygems_version = %q{1.6.2}
44
- s.summary = %q{Capistrano extensions for easy deployment}
6
+ s.authors = ["Benedikt Böhm"]
7
+ s.email = ["bb@xnull.de"]
8
+ s.homepage = "http://github.com/hollow/capper"
9
+ s.summary = %q{Capistrano is a collection of opinionated Capistrano recipes}
10
+ s.description = %q{Capistrano is a collection of opinionated Capistrano recipes}
45
11
 
46
- if s.respond_to? :specification_version then
47
- s.specification_version = 3
12
+ s.add_dependency "erubis"
13
+ s.add_dependency "capistrano"
14
+ s.add_dependency "capistrano_colors"
48
15
 
49
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
- s.add_runtime_dependency(%q<erubis>, [">= 0"])
51
- s.add_development_dependency(%q<shoulda>, [">= 0"])
52
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
53
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
54
- s.add_development_dependency(%q<rcov>, [">= 0"])
55
- else
56
- s.add_dependency(%q<erubis>, [">= 0"])
57
- s.add_dependency(%q<shoulda>, [">= 0"])
58
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
59
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
60
- s.add_dependency(%q<rcov>, [">= 0"])
61
- end
62
- else
63
- s.add_dependency(%q<erubis>, [">= 0"])
64
- s.add_dependency(%q<shoulda>, [">= 0"])
65
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
66
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
67
- s.add_dependency(%q<rcov>, [">= 0"])
68
- end
69
- end
16
+ s.add_development_dependency "bundler", "~> 1.0.0"
70
17
 
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ["lib"]
22
+ s.extra_rdoc_files = ["LICENSE", "README.md"]
23
+ end
@@ -0,0 +1,54 @@
1
+ require 'capistrano'
2
+
3
+ unless Capistrano::Configuration.respond_to?(:instance)
4
+ abort "capper requires Capistrano 2"
5
+ end
6
+
7
+ # add some nice colors
8
+ require "capistrano_colors"
9
+
10
+ # mixin various helpers
11
+ require 'capper/utils/load'
12
+
13
+ require 'capper/utils/templates'
14
+ include Capper::Utils::Templates
15
+
16
+ require 'capper/utils/multistage'
17
+ include Capper::Utils::Multistage
18
+
19
+ # define a bunch of defaults that make sense
20
+ Capper.load do
21
+ # apps should not require root access
22
+ set(:use_sudo, false)
23
+ set(:group_writable, false)
24
+
25
+ # default app layout
26
+ _cset(:user) { application }
27
+ _cset(:bin_path) { File.join(deploy_to, "bin") }
28
+ _cset(:base_path) { "/var/app" }
29
+ _cset(:config_path) { "#{shared_path}/config" }
30
+ set(:deploy_to) { "#{base_path}/#{application}" }
31
+
32
+ # cleanup by default
33
+ after "deploy:update", "deploy:cleanup"
34
+
35
+ namespace :deploy do
36
+ desc <<-DESC
37
+ Prepares one or more servers for deployment. Before you can use any \
38
+ of the Capistrano deployment tasks with your project, you will need to \
39
+ make sure all of your servers have been prepared with `cap deploy:setup'. When \
40
+ you add a new server to your cluster, you can easily run the setup task \
41
+ on just that server by specifying the HOSTS environment variable:
42
+
43
+ $ cap HOSTS=new.server.com deploy:setup
44
+
45
+ It is safe to run this task on servers that have already been set up; it \
46
+ will not destroy any deployed revisions or data.
47
+ DESC
48
+ task :setup, :except => { :no_release => true } do
49
+ dirs = [releases_path, shared_path]
50
+ dirs += shared_children.map { |d| File.join(shared_path, d) }
51
+ run "mkdir -p #{dirs.join(' ')}"
52
+ end
53
+ end
54
+ end
@@ -1,11 +1,19 @@
1
- require File.dirname(__FILE__) + '/../capper' unless defined?(Capper)
1
+ require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
2
  require 'bundler/capistrano'
3
3
 
4
+ # bundler requires rvm
5
+ require "capper/rvm"
6
+
4
7
  Capper.load do
8
+ # do not install a global bundle
9
+ # instead, use the gemset selected by rvm_ruby_string
10
+ set(:bundle_dir) { File.join(shared_path, 'bundle', rvm_ruby_string) }
11
+
5
12
  namespace :bundle do
6
13
  desc "Setup bundler"
7
14
  task :setup, :except => {:no_release => true} do
8
15
  run "if ! gem query -i -n ^bundler$ >/dev/null; then gem install bundler; fi"
16
+ run "mkdir -p #{bundle_dir}"
9
17
  end
10
18
  end
11
19
 
@@ -0,0 +1,13 @@
1
+ require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
+
3
+ Capper.load do
4
+ _cset(:config_repo) { abort "Please specify the config repository, set :config_repo, 'foo'" }
5
+
6
+ after "deploy:setup" do
7
+ run "rm -rf #{config_path} && git clone #{config_repo} #{config_path}"
8
+ end
9
+
10
+ after "deploy:update_code" do
11
+ run "cd #{config_path} && git pull"
12
+ end
13
+ end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../capper' unless defined?(Capper)
1
+ require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
2
 
3
3
  Capper.load do
4
4
  set(:scm, :git)
@@ -0,0 +1,20 @@
1
+ require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
+
3
+ Capper.load do
4
+ # execute the specified stage so that recipes required in stage can contribute to task list
5
+ on :load do
6
+ if stages.include?(ARGV.first)
7
+ find_and_execute_task(ARGV.first) if ARGV.any?{ |option| option =~ /-T|--tasks|-e|--explain/ }
8
+ end
9
+ end
10
+
11
+ namespace :multistage do
12
+ task :ensure do
13
+ unless exists?(:current_stage)
14
+ abort "No stage specified. Please specify one of: #{stages.join(', ')} (e.g. `cap #{stages.first} #{ARGV.last}')"
15
+ end
16
+ end
17
+ end
18
+
19
+ on :start, "multistage:ensure", :except => stages
20
+ end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../capper' unless defined?(Capper)
1
+ require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
2
 
3
3
  # rails uses rvm and bundler
4
4
  require 'capper/rvm'
@@ -1,30 +1,33 @@
1
- require File.dirname(__FILE__) + '/../capper' unless defined?(Capper)
1
+ require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
2
 
3
3
  $:.unshift(File.expand_path('./lib', ENV['rvm_path']))
4
4
  require 'rvm/capistrano'
5
5
 
6
6
  Capper.load do
7
7
  set(:rvm_type, :user)
8
- set(:rvm_ruby_string, File.read(".rvmrc").gsub(/^rvm use --create (.*)@.*/, '\1').strip)
8
+ set(:rvm_ruby_string, File.read(".rvmrc").gsub(/^rvm use --create (.*)/, '\1').strip)
9
9
 
10
10
  namespace :rvm do
11
11
  # install the requested ruby if missing
12
12
  desc "Install the selected ruby version using RVM."
13
13
  task :setup, :except => {:no_release => true} do
14
- run("if ! rvm list rubies | grep -q #{rvm_ruby_string}; then " +
15
- "rvm install #{rvm_ruby_string}; fi",
14
+ wo_gemset = rvm_ruby_string.gsub(/@.*/, '')
15
+ run("if ! rvm list rubies | grep -q #{wo_gemset}; then " +
16
+ "rvm install #{rvm_ruby_string}; fi && " +
17
+ "rvm use --create #{rvm_ruby_string}",
16
18
  :shell => "/bin/bash -l")
17
19
 
18
20
  # this ensures that Gentoos declare -x RUBYOPT="-rauto_gem" is ignored.
19
- run "touch ~/.rvm/rubies/#{rvm_ruby_string}/lib/ruby/site_ruby/auto_gem.rb"
21
+ run "touch ~/.rvm/rubies/#{wo_gemset}/lib/ruby/site_ruby/auto_gem.rb"
20
22
  end
21
23
 
22
24
  # prevents interactive rvm dialog
23
- task :untrust_rvmrc, :except => {:no_release => true} do
24
- run "rvm rvmrc untrust #{current_path}"
25
+ task :trust_rvmrc, :except => {:no_release => true} do
26
+ run "rvm rvmrc trust #{release_path} >/dev/null"
27
+ run "rvm rvmrc trust #{current_path} >/dev/null"
25
28
  end
26
29
  end
27
30
 
28
- on :start, "rvm:setup"
29
- after "deploy:update_code", "rvm:untrust_rvmrc"
31
+ before "deploy:setup", "rvm:setup"
32
+ after "deploy:symlink", "rvm:trust_rvmrc"
30
33
  end
@@ -1,8 +1,11 @@
1
- require File.dirname(__FILE__) + '/../capper' unless defined?(Capper)
1
+ require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
2
 
3
3
  # Unicorn capistrano controls.
4
4
  # See http://unicorn.bogomips.org/SIGNALS.html for signals that can be sent to unicorn.
5
5
 
6
+ # unicorn requires bundler
7
+ require 'capper/bundler'
8
+
6
9
  Capper.load do
7
10
  # unicorn configuration variables
8
11
  _cset(:unicorn_worker_processes, 4)
@@ -10,7 +13,7 @@ Capper.load do
10
13
 
11
14
  # these cannot be overriden
12
15
  set(:unicorn_script) { "#{bin_path}/unicorn" }
13
- set(:unicorn_config) { "#{shared_path}/config/unicorn.rb" }
16
+ set(:unicorn_config) { "#{config_path}/unicorn.rb" }
14
17
  set(:unicorn_pidfile) { "#{shared_path}/pids/unicorn.pid" }
15
18
 
16
19
  namespace :deploy do
@@ -0,0 +1,6 @@
1
+ # helper method to load a block into the capistrano namespace
2
+ class Capper
3
+ def self.load(&block)
4
+ Capistrano::Configuration.instance(true).load(&block)
5
+ end
6
+ end
@@ -0,0 +1,27 @@
1
+ class Capper
2
+ module Utils
3
+ module Multistage
4
+
5
+ def stage(name, &block)
6
+ stages = fetch(:stages, [])
7
+
8
+ if stages.include?(name)
9
+ abort "Multiple stages with the same name are not allowed"
10
+ end
11
+
12
+ namespace :multistage do
13
+ task(name, {}, &block)
14
+ end
15
+
16
+ desc "Set the target stage to `#{name}'."
17
+ task(name) do
18
+ set(:current_stage, name.to_sym)
19
+ find_and_execute_task("multistage:#{name}")
20
+ end
21
+
22
+ set(:stages, [stages, name].flatten.sort)
23
+ end
24
+
25
+ end
26
+ end
27
+ end
@@ -1,4 +1,4 @@
1
- require 'capper' unless defined?(Capper)
1
+ require File.dirname(__FILE__) + '/base' unless defined?(Capper)
2
2
 
3
3
  # whenever requires bundler
4
4
  require 'capper/bundler'
@@ -33,13 +33,13 @@ Capper.load do
33
33
  task :update_crontab do
34
34
  on_rollback do
35
35
  if previous_release
36
- run "cd #{previous_release} && #{whenever_command} #{whenever_update_flags}", options
36
+ run "cd #{previous_release} && #{whenever_command} #{whenever_update_flags}"
37
37
  else
38
- run "cd #{release_path} && #{whenever_command} #{whenever_clear_flags}", options
38
+ run "cd #{release_path} && #{whenever_command} #{whenever_clear_flags}"
39
39
  end
40
40
  end
41
41
 
42
- run "cd #{current_path} && #{whenever_command} #{whenever_update_flags}", options
42
+ run "cd #{current_path} && #{whenever_command} #{whenever_update_flags}"
43
43
  end
44
44
 
45
45
  desc <<-DESC
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: capper
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.0
5
+ version: 0.2.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - "Benedikt B\xC3\xB6hm"
@@ -10,11 +10,12 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-12 00:00:00 +02:00
13
+ date: 2011-07-26 00:00:00 +02:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: erubis
18
+ prerelease: false
18
19
  requirement: &id001 !ruby/object:Gem::Requirement
19
20
  none: false
20
21
  requirements:
@@ -22,79 +23,72 @@ dependencies:
22
23
  - !ruby/object:Gem::Version
23
24
  version: "0"
24
25
  type: :runtime
25
- prerelease: false
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
28
- name: shoulda
28
+ name: capistrano
29
+ prerelease: false
29
30
  requirement: &id002 !ruby/object:Gem::Requirement
30
31
  none: false
31
32
  requirements:
32
33
  - - ">="
33
34
  - !ruby/object:Gem::Version
34
35
  version: "0"
35
- type: :development
36
- prerelease: false
36
+ type: :runtime
37
37
  version_requirements: *id002
38
38
  - !ruby/object:Gem::Dependency
39
- name: bundler
39
+ name: capistrano_colors
40
+ prerelease: false
40
41
  requirement: &id003 !ruby/object:Gem::Requirement
41
42
  none: false
42
43
  requirements:
43
- - - ~>
44
+ - - ">="
44
45
  - !ruby/object:Gem::Version
45
- version: 1.0.0
46
- type: :development
47
- prerelease: false
46
+ version: "0"
47
+ type: :runtime
48
48
  version_requirements: *id003
49
49
  - !ruby/object:Gem::Dependency
50
- name: jeweler
50
+ name: bundler
51
+ prerelease: false
51
52
  requirement: &id004 !ruby/object:Gem::Requirement
52
53
  none: false
53
54
  requirements:
54
55
  - - ~>
55
56
  - !ruby/object:Gem::Version
56
- version: 1.6.4
57
+ version: 1.0.0
57
58
  type: :development
58
- prerelease: false
59
59
  version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: rcov
62
- requirement: &id005 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
68
- type: :development
69
- prerelease: false
70
- version_requirements: *id005
71
- description: Capistrano extensions for easy deployment
72
- email: bb@xnull.de
60
+ description: Capistrano is a collection of opinionated Capistrano recipes
61
+ email:
62
+ - bb@xnull.de
73
63
  executables: []
74
64
 
75
65
  extensions: []
76
66
 
77
67
  extra_rdoc_files:
78
- - LICENSE.txt
79
- - README.rdoc
68
+ - LICENSE
69
+ - README.md
80
70
  files:
81
71
  - .document
72
+ - .gitignore
82
73
  - .rvmrc
83
74
  - Gemfile
84
75
  - Gemfile.lock
85
- - LICENSE.txt
86
- - README.rdoc
76
+ - LICENSE
77
+ - README.md
87
78
  - Rakefile
88
- - VERSION
89
79
  - capper.gemspec
90
- - lib/capper.rb
80
+ - lib/capper/base.rb
91
81
  - lib/capper/bundler.rb
82
+ - lib/capper/config.rb
92
83
  - lib/capper/git.rb
84
+ - lib/capper/multistage.rb
93
85
  - lib/capper/rails.rb
94
86
  - lib/capper/rvm.rb
95
87
  - lib/capper/templates/unicorn.rb.erb
96
88
  - lib/capper/templates/unicorn.sh.erb
97
89
  - lib/capper/unicorn.rb
90
+ - lib/capper/utils/load.rb
91
+ - lib/capper/utils/multistage.rb
98
92
  - lib/capper/utils/templates.rb
99
93
  - lib/capper/whenever.rb
100
94
  has_rdoc: true
@@ -111,9 +105,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
105
  requirements:
112
106
  - - ">="
113
107
  - !ruby/object:Gem::Version
114
- hash: 2356379123392142359
115
- segments:
116
- - 0
117
108
  version: "0"
118
109
  required_rubygems_version: !ruby/object:Gem::Requirement
119
110
  none: false
@@ -127,6 +118,6 @@ rubyforge_project:
127
118
  rubygems_version: 1.6.2
128
119
  signing_key:
129
120
  specification_version: 3
130
- summary: Capistrano extensions for easy deployment
121
+ summary: Capistrano is a collection of opinionated Capistrano recipes
131
122
  test_files: []
132
123
 
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.0
@@ -1,32 +0,0 @@
1
- require 'capistrano'
2
-
3
- unless Capistrano::Configuration.respond_to?(:instance)
4
- abort "capper requires Capistrano 2"
5
- end
6
-
7
- require 'capper/utils/templates'
8
-
9
- # mixin various helpers
10
- include Capper::Utils::Templates
11
-
12
- # define a bunch of defaults that make sense
13
- Capistrano::Configuration.instance(true).load do
14
- # apps should not require root access
15
- _cset(:use_sudo, false)
16
- _cset(:group_writable, false)
17
-
18
- # default app layout
19
- _cset(:user) { application }
20
- _cset(:bin_path) { File.join(deploy_to, "bin") }
21
- _cset(:base_path) { "/var/app" }
22
- set(:deploy_to) { "#{base_path}/#{application}" }
23
-
24
- # cleanup by default
25
- after "deploy:update", "deploy:cleanup"
26
- end
27
-
28
- class Capper
29
- def self.load(&block)
30
- Capistrano::Configuration.instance(true).load(&block)
31
- end
32
- end