capedia 0.0.1

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.
data/lib/capedia.rb ADDED
@@ -0,0 +1,15 @@
1
+ module Capedia
2
+ VERSION = '0.0.1'
3
+
4
+ module Gem
5
+
6
+ def install(gem_name, version = nil)
7
+ version_cmd = version.nil? ? '' : "-v=#{version}"
8
+ run "#{try_sudo} gem install #{gem_name} #{version_cmd} --no-ri --no-rdoc"
9
+ end
10
+
11
+ end
12
+
13
+ end
14
+
15
+ Capistrano.plugin :gem, Capedia::Gem
@@ -0,0 +1,24 @@
1
+ namespace :deploy do
2
+
3
+ namespace :pollers do
4
+
5
+ task :start, :roles => :app do
6
+ fetch(:poller_count, 0).times do
7
+ run "#{current_path}/script/poller start"
8
+ end
9
+ end
10
+
11
+ task :stop, :roles => :app do
12
+ run "#{current_path}/script/poller stop"
13
+ end
14
+
15
+ task :restart, :roles => :app do
16
+ deploy.pollers.stop
17
+ deploy.pollers.start
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+
24
+ after 'deploy:restart', 'deploy:pollers:restart'
@@ -0,0 +1,30 @@
1
+ namespace :deploy do
2
+
3
+ namespace :config do
4
+
5
+ desc 'Creates shared config files using templates stored in the deploy/config'
6
+ task :setup, :except => { :no_release => true } do
7
+ files = fetch(:config_files, [])
8
+ unless files.empty?
9
+ run "mkdir -p #{shared_path}/config"
10
+ files.each do |file|
11
+ template = File.join('config', 'deploy', 'config', "#{file}.erb")
12
+ raise "Template for #{file} does not exist" unless File.exists?(template)
13
+ put ERB.new(File.read(template)).result(binding), "#{shared_path}/config/#{file}"
14
+ end
15
+ end
16
+ end
17
+
18
+ desc 'Symlink shared config files to current release.'
19
+ task :symlink, :except => { :no_release => true } do
20
+ fetch(:config_files, []).each do |file|
21
+ run "ln -nfs #{shared_path}/config/#{file} #{release_path}/config/#{file}"
22
+ end
23
+ end
24
+
25
+ end
26
+
27
+ end
28
+
29
+ after 'deploy:setup', 'deploy:config:setup'
30
+ after 'deploy:symlink', 'deploy:config:symlink'
@@ -0,0 +1,13 @@
1
+ namespace :deploy do
2
+
3
+ desc 'Updates the crontab for each role where a crontab file exists in config/crontab/<stage>/<role>.crontab'
4
+ task :crontab, :except => { :no_release => true } do
5
+ roles.each do |role|
6
+ crontab_file = "#{current_path}/config/crontab/#{fetch(:stage)}/#{role[0]}.crontab"
7
+ run "if [ -f #{crontab_file} ]; then crontab #{crontab_file}; fi", :roles => role[0]
8
+ end
9
+ end
10
+
11
+ end
12
+
13
+ after 'deploy:restart', 'deploy:crontab'
@@ -0,0 +1,16 @@
1
+ namespace :deploy do
2
+
3
+ namespace :gems do
4
+
5
+ desc 'One time gem install for gems that need to be installed before a gem autoinstaller can be invoked (i.e. bundler, rails db adapters, etc.)'
6
+ task :setup, :except => { :no_release => true } do
7
+ fetch(:setup_gems, {}).each do |gem_name, version|
8
+ gem.install gem_name, version
9
+ end
10
+ end
11
+
12
+ end
13
+
14
+ end
15
+
16
+ after 'deploy:setup', 'deploy:gems:setup'
@@ -0,0 +1,13 @@
1
+ namespace :deploy do
2
+
3
+ task :start do
4
+ end
5
+
6
+ task :stop do
7
+ end
8
+
9
+ task :restart, :roles => :web, :except => { :no_release => true } do
10
+ run "#{try_sudo} touch #{File.join(current_path, 'tmp', 'restart.txt')}"
11
+ end
12
+
13
+ end
@@ -0,0 +1,7 @@
1
+ require 'capedia/config'
2
+ require 'capedia/gems'
3
+ require 'capedia/rails_setup'
4
+ require 'capedia/rails_gems_install'
5
+
6
+ after 'deploy:gems:install', 'deploy:migrate'
7
+ after 'deploy:restart', 'deploy:cleanup'
@@ -0,0 +1,14 @@
1
+ namespace :deploy do
2
+
3
+ namespace :gems do
4
+
5
+ desc 'Installs all gems for the current release (uses rake gems:install)'
6
+ task :install, :except => { :no_release => true } do
7
+ run "cd #{current_path}; rake gems:install"
8
+ end
9
+
10
+ end
11
+
12
+ end
13
+
14
+ after 'deploy:symlink', 'deploy:gems:install'
@@ -0,0 +1,18 @@
1
+ namespace :deploy do
2
+
3
+ namespace :rails do
4
+
5
+ desc 'Installs rails gem and other gems that cannot be installed via rake gems:install'
6
+ task :setup do
7
+ if File.read(File.join(File.dirname(__FILE__), 'environment.rb')).match(/RAILS_GEM_VERSION = '(\d+.\d+.\d+)'/)
8
+ gem.install 'rails', $1
9
+ else
10
+ raise 'Could not install rails gem because the gem version could not be detected'
11
+ end
12
+ end
13
+
14
+ end
15
+
16
+ end
17
+
18
+ after 'deploy:setup', 'deploy:rails:setup'
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capedia
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Ryan Wilson
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-08-11 00:00:00 -07:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: "\n A collection of capistrano plugins and recipes. Recipes include passenger, pre installing gems like bundler, \n installing gems (i.e. rake gems:install), symlinking config files, updating crontab, and more ...\n "
23
+ email: rwilson@corpedia.com
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - lib/capedia/active_messaging.rb
32
+ - lib/capedia/config.rb
33
+ - lib/capedia/crontab.rb
34
+ - lib/capedia/gems.rb
35
+ - lib/capedia/passenger.rb
36
+ - lib/capedia/rails.rb
37
+ - lib/capedia/rails_gems_install.rb
38
+ - lib/capedia/rails_setup.rb
39
+ - lib/capedia.rb
40
+ has_rdoc: true
41
+ homepage: ""
42
+ licenses: []
43
+
44
+ post_install_message:
45
+ rdoc_options: []
46
+
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ hash: 3
55
+ segments:
56
+ - 0
57
+ version: "0"
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ hash: 3
64
+ segments:
65
+ - 0
66
+ version: "0"
67
+ requirements: []
68
+
69
+ rubyforge_project: ""
70
+ rubygems_version: 1.3.7
71
+ signing_key:
72
+ specification_version: 3
73
+ summary: Common capistrano plugins and recipes
74
+ test_files: []
75
+