mina-ext 0.0.1 → 0.1.0

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.
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