crushserver 0.2.2 → 0.3.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.
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ *.gem
2
+ pkg
data/Rakefile CHANGED
@@ -7,6 +7,7 @@ begin
7
7
  gemspec.authors = ['PJ Kelly', 'Mason Browne']
8
8
  gemspec.email = 'pj@crushlovely.com'
9
9
  gemspec.homepage = 'http://github.com/crushlovely/crushserver'
10
+ gemspec.add_dependency "tinder", ">= 1.4.0"
10
11
  end
11
12
  rescue LoadError
12
13
  puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.3.0
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 2
3
2
  :major: 0
4
- :minor: 2
3
+ :minor: 3
4
+ :patch: 0
@@ -0,0 +1,48 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{crushserver}
8
+ s.version = "0.3.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["PJ Kelly", "Mason Browne"]
12
+ s.date = %q{2010-06-23}
13
+ s.description = %q{A collection of capistrano tasks frequently used at Crush + Lovely.}
14
+ s.email = %q{pj@crushlovely.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README"
18
+ ]
19
+ s.files = [
20
+ ".gitignore",
21
+ "LICENSE",
22
+ "README",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "VERSION.yml",
26
+ "crushserver.gemspec",
27
+ "lib/crushserver/recipes.rb"
28
+ ]
29
+ s.homepage = %q{http://github.com/crushlovely/crushserver}
30
+ s.rdoc_options = ["--charset=UTF-8"]
31
+ s.require_paths = ["lib"]
32
+ s.rubygems_version = %q{1.3.7}
33
+ s.summary = %q{A collection of capistrano tasks frequently used at Crush + Lovely.}
34
+
35
+ if s.respond_to? :specification_version then
36
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
37
+ s.specification_version = 3
38
+
39
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
40
+ s.add_runtime_dependency(%q<tinder>, [">= 1.4.0"])
41
+ else
42
+ s.add_dependency(%q<tinder>, [">= 1.4.0"])
43
+ end
44
+ else
45
+ s.add_dependency(%q<tinder>, [">= 1.4.0"])
46
+ end
47
+ end
48
+
@@ -1,79 +1,101 @@
1
- Capistrano::Configuration.instance(:must_exist).load do
1
+ require 'tinder'
2
2
 
3
- namespace :sync do
4
- desc "Sync both database and attachments to local machine. Requires awesome-backup plugin."
5
- task :all do
6
- sync.db
7
- sync.attachments
8
- end
9
-
10
- desc "Sync database to local computer. Requires awesome-backup plugin."
11
- task :db do
12
- backup.mirror
13
- end
3
+ namespace :sync do
4
+ desc "Sync both database and attachments to local machine. Requires awesome-backup plugin."
5
+ task :all do
6
+ sync.db
7
+ sync.attachments
8
+ end
14
9
 
15
- desc "Copy attachments from server."
16
- task :attachments, :roles => :app, :only => { :primary => true } do
17
- FileUtils.mkdir_p "public/system"
18
- # While we could use the following command...
19
- # download("#{shared_path}/system", "public/system", :recursive => true)
20
- # let's use rsync instead so we only download what we need...
21
- system "rsync --delete --recursive --times --rsh=ssh --compress --human-readable --progress #{user}@#{domain}:#{shared_path}/system/ public/system/"
22
- end
10
+ desc "Sync database to local computer. Requires awesome-backup plugin."
11
+ task :db do
12
+ backup.mirror
23
13
  end
24
14
 
25
- namespace(:db) do
26
- desc "Execute db:populate rake task in appropriate environment"
27
- task :populate, :roles => :app, :only => { :primary => true } do
28
- run "cd #{current_path}; rake RAILS_ENV=#{rails_env} db:populate"
29
- end
15
+ desc "Copy attachments from server."
16
+ task :attachments, :roles => :app, :only => { :primary => true } do
17
+ FileUtils.mkdir_p "public/system"
18
+ # While we could use the following command...
19
+ # download("#{shared_path}/system", "public/system", :recursive => true)
20
+ # let's use rsync instead so we only download what we need...
21
+ system "rsync --delete --recursive --times --rsh=ssh --compress --human-readable --progress #{user}@#{domain}:#{shared_path}/system/ public/system/"
22
+ end
23
+ end
30
24
 
31
- desc "Execute db:seed rake task in appropriate environment"
32
- task :seed, :roles => :app, :only => { :primary => true } do
33
- run "cd #{current_path}; rake RAILS_ENV=#{rails_env} db:seed"
34
- end
25
+ namespace(:db) do
26
+ desc "Execute db:populate rake task in appropriate environment"
27
+ task :populate, :roles => :app, :only => { :primary => true } do
28
+ run "cd #{current_path}; rake RAILS_ENV=#{rails_env} db:populate"
29
+ end
35
30
 
36
- desc "Execute db:seed_fu rake task in appropriate environment"
37
- task :seed_fu, :roles => :app, :only => { :primary => true } do
38
- run "cd #{current_path}; rake RAILS_ENV=#{rails_env} db:seed_fu"
39
- end
31
+ desc "Execute db:seed rake task in appropriate environment"
32
+ task :seed, :roles => :app, :only => { :primary => true } do
33
+ run "cd #{current_path}; rake RAILS_ENV=#{rails_env} db:seed"
40
34
  end
41
35
 
42
- namespace(:asset) do
43
- namespace(:packager) do
44
- desc "Execute asset:packager:build_all rake task in appropriate environment"
45
- task :build_all, :roles => :app do
46
- run "cd #{latest_release}; rake RAILS_ENV=#{rails_env} asset:packager:build_all"
47
- end
48
-
49
- desc "Execute asset:packager:delete_all rake task in appropriate environment"
50
- task :delete_all, :roles => :app do
51
- run "cd #{latest_release}; rake RAILS_ENV=#{rails_env} asset:packager:delete_all"
52
- end
53
- end
36
+ desc "Execute db:seed_fu rake task in appropriate environment"
37
+ task :seed_fu, :roles => :app, :only => { :primary => true } do
38
+ run "cd #{current_path}; rake RAILS_ENV=#{rails_env} db:seed_fu"
54
39
  end
40
+ end
55
41
 
56
- namespace(:bdg) do
57
- namespace(:localize) do
58
- # This should be overridden in deploy.rb
59
- set :config_files, []
60
-
61
- desc "copy shared configurations to new release. this task should be called after deploy:update_code like so: after 'deploy:update_code', 'bdg:localize:copy_shared_configurations'"
62
- task :copy_shared_configurations, :roles => [:app] do
63
- config_files.each do |f|
64
- run "ln -nsf #{shared_path}/config/#{f} #{release_path}/config/#{f}"
65
- end
66
- end
42
+ namespace(:asset) do
43
+ namespace(:packager) do
44
+ desc "Execute asset:packager:build_all rake task in appropriate environment"
45
+ task :build_all, :roles => :app do
46
+ run "cd #{latest_release}; rake RAILS_ENV=#{rails_env} asset:packager:build_all"
67
47
  end
68
48
 
69
- desc "Clean database sessions older than 12 hours"
70
- task :clean_sessions do
71
- sudo "cd #{current_path}; RAILS_ENV=#{rails_env} script/runner 'ActiveRecord::Base.connection.delete(\"DELETE FROM sessions WHERE updated_at < now() - 12*3600\")'"
49
+ desc "Execute asset:packager:delete_all rake task in appropriate environment"
50
+ task :delete_all, :roles => :app do
51
+ run "cd #{latest_release}; rake RAILS_ENV=#{rails_env} asset:packager:delete_all"
72
52
  end
53
+ end
54
+ end
73
55
 
74
- desc "Copy apache conf file to proper location on server"
75
- task :copy_apache_conf_file do
76
- sudo "cp #{current_path}/config/apache/#{stage}.conf /etc/httpd/conf/apps/#{application}.conf"
56
+ namespace :campfire do
57
+ desc "Send a message to the campfire chat room"
58
+ task :snitch do
59
+ if ENV['CAMPFIRE_SUBDOMAIN'].blank? || ENV['CAMPFIRE_TOKEN'].blank? || ENV['CAMPFIRE_ROOM'].blank?
60
+ puts "Campfire notifications are not configured in your environment. The CAMPFIRE_SUBDOMAIN, CAMPFIRE_TOKEN and CAMPFIRE_ROOM environment variables must be set."
61
+ else
62
+ campfire = Tinder::Campfire.new ENV['CAMPFIRE_SUBDOMAIN'], :ssl => true, :token => ENV['CAMPFIRE_TOKEN']
63
+ room = campfire.find_room_by_name ENV['CAMPFIRE_ROOM']
64
+ snitch_message = fetch(:snitch_message) { ENV['MESSAGE'] || abort('Capfire snitch message is missing. Use set :snitch_message, "Your message"') }
65
+ room.speak(snitch_message)
77
66
  end
78
67
  end
68
+
69
+ # desc "Send a message to the campfire chat room about the deploy start"
70
+ # task :snitch_begin do
71
+ # set :snitch_message, "BEGIN DEPLOY [#{stage.to_s.upcase}]: #{ENV['USER']}, #{branch}/#{real_revision[0, 7]} to #{deploy_to}"
72
+ # snitch
73
+ # end
74
+
75
+ desc "Send a message to the campfire chat room about the deploy end"
76
+ task :snitch_end do
77
+ # set :snitch_message, "END DEPLOY [#{stage.to_s.upcase}]: #{ENV['USER']}, #{branch}/#{real_revision[0, 7]} to #{deploy_to}"
78
+ set :snitch_message, "#{application.upcase} was deployed to #{stage.to_s.upcase} by #{ENV['USER'].upcase} (#{branch}/#{real_revision[0, 7]})"
79
+ snitch
80
+ end
81
+
82
+ # desc "Send a message to the campfire chat roob about the rollback"
83
+ # task :snitch_rollback do
84
+ # set :snitch_message, "ROLLBACK [#{stage.to_s.upcase}]: #{ENV['USER']}, #{latest_revision[0, 7]} to #{previous_revision[0, 7]} on #{deploy_to}"
85
+ # snitch
86
+ # end
87
+ end
88
+
89
+ #############################################################
90
+ # Hooks
91
+ #############################################################
92
+
93
+ # before :deploy do
94
+ # campfire.snitch_begin unless ENV['QUIET'].to_i > 0
95
+ # end
96
+
97
+ after :deploy do
98
+ campfire.snitch_end unless ENV['QUIET'].to_i > 0
79
99
  end
100
+
101
+ # before 'deploy:rollback', 'campfire:snitch_rollback'
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crushserver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 3
8
+ - 0
9
+ version: 0.3.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - PJ Kelly
@@ -10,10 +15,24 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2009-12-03 00:00:00 -08:00
18
+ date: 2010-06-23 00:00:00 -07:00
14
19
  default_executable:
15
- dependencies: []
16
-
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: tinder
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ segments:
30
+ - 1
31
+ - 4
32
+ - 0
33
+ version: 1.4.0
34
+ type: :runtime
35
+ version_requirements: *id001
17
36
  description: A collection of capistrano tasks frequently used at Crush + Lovely.
18
37
  email: pj@crushlovely.com
19
38
  executables: []
@@ -24,11 +43,14 @@ extra_rdoc_files:
24
43
  - LICENSE
25
44
  - README
26
45
  files:
46
+ - .gitignore
27
47
  - LICENSE
48
+ - README
28
49
  - Rakefile
50
+ - VERSION
29
51
  - VERSION.yml
52
+ - crushserver.gemspec
30
53
  - lib/crushserver/recipes.rb
31
- - README
32
54
  has_rdoc: true
33
55
  homepage: http://github.com/crushlovely/crushserver
34
56
  licenses: []
@@ -39,21 +61,25 @@ rdoc_options:
39
61
  require_paths:
40
62
  - lib
41
63
  required_ruby_version: !ruby/object:Gem::Requirement
64
+ none: false
42
65
  requirements:
43
66
  - - ">="
44
67
  - !ruby/object:Gem::Version
68
+ segments:
69
+ - 0
45
70
  version: "0"
46
- version:
47
71
  required_rubygems_version: !ruby/object:Gem::Requirement
72
+ none: false
48
73
  requirements:
49
74
  - - ">="
50
75
  - !ruby/object:Gem::Version
76
+ segments:
77
+ - 0
51
78
  version: "0"
52
- version:
53
79
  requirements: []
54
80
 
55
81
  rubyforge_project:
56
- rubygems_version: 1.3.5
82
+ rubygems_version: 1.3.7
57
83
  signing_key:
58
84
  specification_version: 3
59
85
  summary: A collection of capistrano tasks frequently used at Crush + Lovely.