magic_recipes 0.0.14 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -1,6 +1,6 @@
1
1
  # MagicRecipes
2
2
 
3
- .. some capistrano-recipes for our deployment .. still in development.
3
+ Some capistrano-recipes for our deployment .. still in development!
4
4
 
5
5
  Code is inspired by:
6
6
 
@@ -10,28 +10,33 @@ Code is inspired by:
10
10
 
11
11
 
12
12
  ## Usage
13
- add magic_recipes to your Gemfile
14
13
 
15
- gem 'magic_recipes', :require => nil
14
+ add magic_recipes to your Gemfile
15
+ ```ruby
16
+ gem 'magic_recipes', :require => nil
17
+ ```
16
18
 
17
- run bundle install
19
+ install the gem
20
+ ```ruby
21
+ $ bundle install
22
+ ```
18
23
 
19
24
  run the generator
20
-
21
- rails g magic_recipes:capify
25
+ ```ruby
26
+ $ rails g magic_recipes:capify
27
+ ```
22
28
 
23
29
  edit 'config/deploy'
24
30
 
25
- enjoy some magic
31
+ enjoy some magic!
26
32
 
27
33
 
28
34
  ## ToDo´s
29
35
 
30
36
  - add tests (rspec+cucumber)
31
37
  - make expect-cap-task (bin/*_cap)
32
-
33
- - improve: passenger, unicorn rbenv, postgesql, nodejs, gems, db, git, rvm
34
- - add: puma, varnish, search-stuff, vps-stuff
38
+ - **improve:** passenger, unicorn rbenv, postgesql, nodejs, gems, db, git, rvm
39
+ - **add:** puma, varnish, search-stuff, vps-stuff
35
40
 
36
41
 
37
42
  ## Ready
@@ -42,6 +47,29 @@ and in use .. but not tested
42
47
  - thin
43
48
  - assets
44
49
  - private_pub ... needs [nginx_tcp_proxy_module](https://github.com/yaoweibin/nginx_tcp_proxy_module) for nginx
50
+ - *sqlite* ... this is more for test & try pupose (save .sqlite and copy to current after deploy)
51
+
52
+
53
+ ## More .. ( special feature )
54
+
55
+ There's also an Except-Script (bin/git_cap) which is great if you use a private-git-repository ... so you don't need to provide your git-username and git-password twice every deploy.
56
+
57
+ **Usage**
58
+
59
+ ```ruby
60
+ $ rails g magic_recipes:git_cap # => from app folder .. copy git_cap file
61
+ $ git_cap git_name git_password # => from app folder .. start silent depoy
62
+ ```
63
+
64
+ or add an alias in ~/.profile | ~/.bash_rc
65
+ ```ruby
66
+ alias git_deploy='./git_cap git_name git_password'
67
+ ```
68
+
69
+ and start with
70
+ ```ruby
71
+ $ git_deploy
72
+ ```
45
73
 
46
74
  ### Licence
47
75
  This project rocks and uses MIT-LICENSE.
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+ require 'rails/generators'
3
+
4
+ module MagicRecipes
5
+ module Generators
6
+ class GitCapGenerator < Rails::Generators::Base
7
+ source_root File.expand_path("../templates", __FILE__)
8
+ include Thor::Actions
9
+
10
+ # => argument :git_name, :type => :string, :banner => 'GitName', :default => "git_name"
11
+ # => argument :git_password, :type => :string, :banner => 'GitPassword', :default => "git_password"
12
+ # => def initialize(args, *options) #:nodoc:
13
+ # => super
14
+ # => end
15
+
16
+ desc "Some visuals."
17
+ def initial_desc
18
+ puts(' * * * * * * * * * * * * * * * * * * * * * * * * * *')
19
+ puts(' - - - - - - M A G I C - R E C I P E S : git-deploy-helper - - - - - - - -')
20
+ end
21
+
22
+ desc "copy git_cap file."
23
+ def create_git_cap_files
24
+ template "git_cap.tt", "#{ Rails.root }/git_cap"
25
+ end
26
+
27
+ desc "More visuals."
28
+ def end_desc
29
+ puts(" - - - - - - Usage: $ git_cap [git_name] [git_password] - - - - - - - -")
30
+ puts(' * * * * * * * * * * * * * * * * * * * * * * * * * *')
31
+ end
32
+
33
+ end
34
+ end
35
+ end
@@ -54,6 +54,11 @@ set :rails_env, "production" #=> Rails environmen
54
54
  # => # set :git_enable_submodules, 1 #=> Git submodules
55
55
 
56
56
 
57
+ # SqLite3 ... this is more for test & try pupose (save .sqlite and copy to current after deploy)
58
+ set :sqlite_path, "#{ deploy_to }/shared/db/" #=> shared path for db
59
+ set :sqlite_db, "#{ rails_env.downcase.strip }" #=> sqlite name
60
+
61
+
57
62
  # if you want to clean up old releases on each deploy uncomment this:
58
63
  # => set :keep_releases, 3
59
64
  # => after "deploy:restart", "deploy:cleanup"
@@ -63,7 +68,7 @@ set :rails_env, "production" #=> Rails environmen
63
68
  # Usage:
64
69
  # magic_recipes :rvm, :nginx, :private_pub, :thin
65
70
  # available:
66
- # :rvm, :rbenv, :nginx, :private_pub, :thin, :passenger, :unicorn, :assets, :gems
71
+ # :rvm, :rbenv, :nginx, :private_pub, :thin, :passenger, :unicorn, :assets, :gems, :sqlite, :db
67
72
  # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
68
73
 
69
74
  magic_recipes :rvm, :nginx, :private_pub, :thin
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/expect -f
2
+ # Expect script to supply username/password to cap deploy to git private repository
3
+ # This script needs username and password as arguments to connect to git server:
4
+ # ------------------------------------------------------------------------
5
+ # ./git_cap gitusr gitpwd
6
+ # -------------------------------------------------------------------------
7
+ # set Variables
8
+ set g_user [lrange $argv 0 0]
9
+ set g_pwd [lrange $argv 1 1]
10
+ set timeout -1
11
+
12
+ spawn cap deploy
13
+ match_max 100000
14
+
15
+ # Look for user prompt
16
+ expect "*?sername:*"
17
+ send -- "$g_user\r"
18
+ send -- "\r"
19
+
20
+ # Look for passwod prompt
21
+ expect "*?assword:*"
22
+ send -- "$g_pwd\r"
23
+ send -- "\r"
24
+
25
+ # Look for user prompt
26
+ expect "*?sername:*"
27
+ send -- "$g_user\r"
28
+ send -- "\r"
29
+
30
+ # Look for passwod prompt
31
+ expect "*?assword:*"
32
+ send -- "$g_pwd\r"
33
+ send -- "\r"
34
+
35
+ expect eof
@@ -1,5 +1,19 @@
1
1
  # encoding: utf-8
2
2
  module MagicRecipes
3
+ # Nginx - Deploy-Recipes
4
+ #
5
+ # Tasks:
6
+ # :install # => Install latest stable release of nginx
7
+ # :setup # => Setup nginx configuration for this application
8
+ # :start # => start nginx-server
9
+ # :stop # => stop nginx-server
10
+ # :restart # => setup, stop, start nginx-server
11
+ #
12
+ # Callbacks:
13
+ # after "deploy:install", "nginx:install"
14
+ # after "deploy:setup", "nginx:setup"
15
+ # after "deploy", "nginx:restart"
16
+ #
3
17
  module Nginx
4
18
  def self.load_into(configuration)
5
19
  configuration.load do
@@ -1,6 +1,15 @@
1
1
  # encoding: utf-8
2
2
  module MagicRecipes
3
3
  module Passenger
4
+
5
+ # Passenger - Deploy
6
+ #
7
+ # Tasks:
8
+ # task :restart # => Restart Phusion-Passenger
9
+ #
10
+ # Callbacks:
11
+ # after "deploy:restart", "passenger:restart"
12
+ #
4
13
  def self.load_into(configuration)
5
14
  configuration.load do
6
15
 
@@ -8,7 +17,6 @@ module MagicRecipes
8
17
 
9
18
  namespace :passenger do
10
19
 
11
- # Restart Passenger
12
20
  desc "Restart - Passenger"
13
21
  task :restart, :roles => :app, :except => { :no_release => true } do
14
22
  run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ module MagicRecipes
3
+ module Sqlite
4
+ def self.load_into(configuration)
5
+ configuration.load do
6
+
7
+ set_default :sqlite_path, "#{ deploy_to }/shared/db/"
8
+ set_default :sqlite_db, "#{ rails_env.downcase.strip }"
9
+
10
+ namespace :sqlite do
11
+
12
+ desc "save current db"
13
+ task :save_db do
14
+ if use_rvm
15
+ run <<-CMD
16
+ #{rvm_cmd} &&
17
+ cd #{deploy_to}/current/db &&
18
+ cp -f #{ sqlite_db }.sqlite3 #{ sqlite_path }/
19
+ CMD
20
+ else
21
+ run "cd #{deploy_to}/current/db && cp #{ sqlite_db }.sqlite3 #{sqlite_path}/"
22
+ end
23
+ end
24
+
25
+ desc "copy the database"
26
+ task :copy_db do
27
+ if use_rvm
28
+ run <<-CMD
29
+ #{rvm_cmd} &&
30
+ cd #{sqlite_path} &&
31
+ cp -f #{ sqlite_db }.sqlite3 #{deploy_to}/current/db/
32
+ CMD
33
+ else
34
+ run "cd #{sqlite_path} && cp -f #{ sqlite_db }.sqlite3 #{deploy_to}/current/db/"
35
+ end
36
+ end
37
+
38
+ end
39
+
40
+ before "deploy", "sqlite:save_db"
41
+ after "deploy", "sqlite:copy_db"
42
+
43
+ # eof
44
+
45
+ end
46
+ end
47
+ end
48
+ end
49
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magic_recipes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-27 00:00:00.000000000 Z
12
+ date: 2012-10-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -171,8 +171,8 @@ dependencies:
171
171
  - - ! '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
- description: ! 'Our capistrano recipes for nginx, passenger, thin, private_pub ..
175
- some code is taken from Ryan Bates´s railscast #337.'
174
+ description: Our capistrano recipes for nginx, passenger, thin, private_pub, .. include
175
+ expect-script for silent-deployment of private git-repos.
176
176
  email:
177
177
  - torstenwetzel@berlinmagic.com
178
178
  executables: []
@@ -182,8 +182,10 @@ files:
182
182
  - bin/g_cap
183
183
  - bin/git_cap
184
184
  - lib/generators/magic_recipes/capify_generator.rb
185
+ - lib/generators/magic_recipes/git_cap_generator.rb
185
186
  - lib/generators/magic_recipes/templates/Capfile.tt
186
187
  - lib/generators/magic_recipes/templates/deploy.rb.tt
188
+ - lib/generators/magic_recipes/templates/git_cap.tt
187
189
  - lib/magic_recipes/assets.rb
188
190
  - lib/magic_recipes/db.rb
189
191
  - lib/magic_recipes/gems.rb
@@ -195,6 +197,7 @@ files:
195
197
  - lib/magic_recipes/private_pub.rb
196
198
  - lib/magic_recipes/rbenv.rb
197
199
  - lib/magic_recipes/rvm.rb
200
+ - lib/magic_recipes/sqlite.rb
198
201
  - lib/magic_recipes/templates/nginx_passenger.erb
199
202
  - lib/magic_recipes/templates/nginx_private_pub.erb
200
203
  - lib/magic_recipes/templates/nginx_thin.erb