mina-ext 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ # Changelog
2
+
3
+ ## Mina Ext 0.1.0 (July 5, 2012)
4
+
5
+ * First release
data/README.md CHANGED
@@ -1,29 +1,3 @@
1
1
  # Mina::Ext
2
2
 
3
- TODO: Write a gem description
4
-
5
- ## Installation
6
-
7
- Add this line to your application's Gemfile:
8
-
9
- gem 'mina-ext'
10
-
11
- And then execute:
12
-
13
- $ bundle
14
-
15
- Or install it yourself as:
16
-
17
- $ gem install mina-ext
18
-
19
- ## Usage
20
-
21
- TODO: Write usage instructions here
22
-
23
- ## Contributing
24
-
25
- 1. Fork it
26
- 2. Create your feature branch (`git checkout -b my-new-feature`)
27
- 3. Commit your changes (`git commit -am 'Added some feature'`)
28
- 4. Push to the branch (`git push origin my-new-feature`)
29
- 5. Create new Pull Request
3
+ My private gem
@@ -0,0 +1,125 @@
1
+ def origin_branches
2
+ `git branch -a`.
3
+ split("\n").
4
+ reject{|line| line =~ /HEAD/}.
5
+ reject{|line| line =~ /master/}.
6
+ select{|line| line =~ /remotes\/origin\//}.
7
+ map{|line| line.sub(/.*remotes\/origin\//, '')}
8
+ end
9
+
10
+ def instance_deploy_tasks(prefix, instance, &block)
11
+ namespace instance do
12
+ namespace :deploy do
13
+ origin_branches.each do |branch|
14
+ desc "Deploy '#{prefix}_#{instance}' from branch '#{branch}'"
15
+ task branch do
16
+ set :revision, branch
17
+ set :deploy_to, "/opt/www/#{prefix}_#{instance}"
18
+ set :instance, instance
19
+ set :prefix, prefix
20
+ deploy do
21
+ block.call(prefix, instance)
22
+ end
23
+ invoke 'deploy:cleanup'
24
+ end
25
+ end
26
+ end
27
+
28
+ desc "Deploy '#{prefix}_#{instance}' from master"
29
+ task :deploy do
30
+ set :revision, 'master'
31
+ set :deploy_to, "/opt/www/#{prefix}_#{instance}"
32
+ set :instance, instance
33
+ set :prefix, prefix
34
+ deploy do
35
+ block.call(prefix, instance)
36
+ end
37
+ invoke 'deploy:cleanup'
38
+ end
39
+ end
40
+ end
41
+
42
+ def instance_setup_task(prefix, instance)
43
+ namespace instance do
44
+ desc "Setup '#{prefix}_#{instance}'"
45
+ task :setup do
46
+ set :revision, 'master'
47
+ set :deploy_to, "/opt/www/#{prefix}_#{instance}"
48
+ set :instance, instance
49
+ set :prefix, prefix
50
+ invoke :setup
51
+ end
52
+ end
53
+ end
54
+
55
+ def instance_manage_tasks(prefix, instance)
56
+ namespace instance do
57
+ desc "Start '#{prefix}_#{instance}'"
58
+ task :start do
59
+ set :deploy_to, "/opt/www/#{prefix}_#{instance}"
60
+ set :instance, instance
61
+ set :prefix, prefix
62
+ invoke :__start
63
+ end
64
+
65
+ desc "Restart '#{prefix}_#{instance}'"
66
+ task :restart do
67
+ set :deploy_to, "/opt/www/#{prefix}_#{instance}"
68
+ set :instance, instance
69
+ set :prefix, prefix
70
+ invoke :__stop
71
+ queue 'sleep 10'
72
+ invoke :__start
73
+ end
74
+
75
+ desc "Stop '#{prefix}_#{instance}'"
76
+ task :stop do
77
+ set :deploy_to, "/opt/www/#{prefix}_#{instance}"
78
+ set :instance, instance
79
+ set :prefix, prefix
80
+ invoke :__stop
81
+ end
82
+
83
+ desc "Tail Log '#{prefix}_#{instance}'"
84
+ task :log do
85
+ set :deploy_to, "/opt/www/#{prefix}_#{instance}"
86
+ set :instance, instance
87
+ set :prefix, prefix
88
+ invoke :__log
89
+ end
90
+ end
91
+ end
92
+
93
+ task :__git_clone do
94
+ queue %{
95
+ echo "-----> Cloning the Git repository"
96
+ #{echo_cmd %[git clone "#{repository!}" .]}
97
+ }
98
+
99
+ if revision != 'master'
100
+ queue %{
101
+ echo "-----> Using revision #{revision}" &&
102
+ #{echo_cmd %[git checkout "#{revision}"]}
103
+ }
104
+ end
105
+ end
106
+
107
+ task :__start do
108
+ queue %{
109
+ cd #{deploy_to}/current && bundle exec unicorn_rails -c /opt/unicorn-conf/#{prefix}_#{instance}.rb -E production -D &&
110
+ echo "-----> #{instance} Started"
111
+ }
112
+ end
113
+
114
+ task :__stop do
115
+ queue %{
116
+ kill -QUIT `cat /opt/unicorn-pids/#{prefix}_#{instance}.pid`; true
117
+ echo "-----> #{instance} Stopped"
118
+ }
119
+ end
120
+
121
+ task :__log do
122
+ queue %{
123
+ cd #{deploy_to}/current && tail -400 log/production.log
124
+ }
125
+ end
@@ -1,3 +1,3 @@
1
1
  module MinaExt
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mina-ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -35,6 +35,7 @@ extensions: []
35
35
  extra_rdoc_files: []
36
36
  files:
37
37
  - .gitignore
38
+ - CHANGELOG.md
38
39
  - Gemfile
39
40
  - LICENSE
40
41
  - README.md