crushserver 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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.