capistrano_recipes 1.0.3 → 1.0.4

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDc1YjMxNzE5OThkOTI4YmMxMjRlNTYwMmViYTNjZTliYzRkMzI1OA==
4
+ YTBhNzUwMzc5MWQxZTgyYzE1MGY2NDZlOTgzZWI2N2QyYWY5YzAyZQ==
5
5
  data.tar.gz: !binary |-
6
- MWVmZGNkYjNlNmQwMjBiMmFkNTYzMWRhZTNiMGMzYzY1ODYyZmQ5NQ==
6
+ NTI5MDc5MTM1M2U4MzM1OTNkN2VhNGI2OWU2Mjg2MGY0MTlhYzUzYQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZGZiYmVhZTc2ZTI1MTJlOWNiNTVmMTJiZGI2ZmE5NzRiMjljOTJhNDE1ZDY2
10
- ODgxYTYxYTU0MzUzNTczNDc1NWMyYTU2NjA3YzVlNTQxNzdlZThhNjllNDkx
11
- NTg2NDJlZjhiNGEzYTE3YWRlYjM5NmI1ZDI0ZmRlMjJkOGI5NWM=
9
+ YzIyMTAwMTU1ZjA5YmQ4MGZjNmRmMDA0NmYxMzA3NTRjMjNjYTJjODAxNzRj
10
+ ZmQzNmM4OGJjOTYxMWRmN2RlYTYzOTJjM2Q0NGE5ZGEwOTQ4ODAxMDBhZTE2
11
+ MTdiYzkwMTZhZGU1NDVlZDRjMzgzNDI5NjY3MmM2MzQ3YTRmYzI=
12
12
  data.tar.gz: !binary |-
13
- NmEyMTk5NWY3MGJiODJiMjJiZDhhZTY1ZGQyMDU1MjdlYWIxNzg1YTJhZWI5
14
- OWFmOTNlNTlkYmEyY2U4N2M1ZGM5OTlhZjcyZjFmYTlkZDk5YWU5MTNjZjI5
15
- NWNlNjBiMTk3YTRiNTJmM2I2YjJjZWM4NDZlYzI2OWNmNjU3Nzk=
13
+ ZTc0ODllNTJkOGMzNmE1ZGU3OTVkYWQ4YTZlZTM1NjhjMTMwNjMxYjlhYTFk
14
+ OGFlZDYzYmE0Yzg2NTllNGU5ODVmYTY0OGIxMWUwMjdiNWNkYmFhNGRjZmU5
15
+ NGUyMGY0ZTMxZjg3ZGQzYzgyNmJiMTJlMTQxMjRmYWEyYWIzNjE=
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'capistrano_recipes'
7
- s.version = '1.0.3'
7
+ s.version = '1.0.4'
8
8
  s.authors = ['Fernando Aleman']
9
9
  s.email = ['fernandoaleman@mac.com']
10
10
  s.description = 'Capistrano recipes to make your deployments fast and easy'
@@ -50,18 +50,35 @@ module CapistranoRecipes
50
50
 
51
51
  desc 'Create mysql database'
52
52
  task :create, :roles => :db, :only => { :primary => true } do
53
- sql = <<-SQL.gsub(/^ {14}/, '')
54
- "CREATE DATABASE #{mysql_database};
55
- GRANT ALL PRIVILEGES ON #{mysql_database}.* TO #{mysql_user}@localhost IDENTIFIED BY '#{mysql_password}';"
56
- SQL
57
-
53
+ prepare_from_yaml
54
+
55
+ db_exists = false
56
+
58
57
  mysql_admin = mysql_admin_user
59
-
60
- run "mysql --user=#{mysql_user} -p --execute=#{sql}" do |channel, stream, data|
58
+ pass = password_prompt "Enter database password for '#{mysql_admin}'"
59
+
60
+ run "echo \"SHOW DATABASES\" | mysql -u #{mysql_admin} -p" do |channel, stream, data|
61
61
  if data =~ /^Enter password:/
62
- pass = password_prompt "Enter database password for '#{mysql_admin}'"
63
62
  channel.send_data "#{pass}\n"
64
63
  end
64
+
65
+ if data =~ /^Database/
66
+ db_exists = db_exists || data.include?(db_name)
67
+ end
68
+ end
69
+
70
+ if db_exists
71
+ say "#{db_name} already exists, skipping..."
72
+ else
73
+ sql = "CREATE DATABASE #{db_name};"\
74
+ "GRANT ALL PRIVILEGES ON #{db_name}.* TO #{db_user}@localhost IDENTIFIED BY '#{db_pass}';"\
75
+ "FLUSH PRIVILEGES;"
76
+
77
+ run "echo \"#{sql}\" | mysql -u #{mysql_admin} -p" do |channel, stream, data|
78
+ if data =~ /^Enter password:/
79
+ channel.send_data "#{pass}\n"
80
+ end
81
+ end
65
82
  end
66
83
  end
67
84
 
@@ -1,6 +1,6 @@
1
1
  <%= rails_env %>:
2
2
  adapter: <%= mysql_adapter %>
3
- database: <%= mysql_database %>
3
+ database: <%= mysql_database.gsub(/-/, '_') %>
4
4
  username: <%= mysql_user %>
5
5
  password: <%= mysql_password %>
6
6
  host: <%= mysql_host %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano_recipes
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fernando Aleman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-20 00:00:00.000000000 Z
11
+ date: 2013-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano