capistrano_recipes 1.0.3 → 1.0.4

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