dolphin 0.0.4 → 0.0.5

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f57b22721a91a02e69fcd6d356ece041a59215cc
4
- data.tar.gz: 68fa17486f27058ec05277c34dd814f12e242ef1
3
+ metadata.gz: c3c7b54501a8a9b956d5f64dc057f056400d4719
4
+ data.tar.gz: bba03a660905487e6fa96b7f0dcab409e43dde5b
5
5
  SHA512:
6
- metadata.gz: 4f93b35088ea62118f1c33fa44f2c5f8fca4ba43de04e90f1f4b4717685b891f937c09a731d1581605cf6ad60c1c2adc7e949e40ce2132c22cfd0d4153fa2506
7
- data.tar.gz: e70d4ffcf6d3ab66d9d79d36d0a4fbf4258591d5a347caef49f723b132e20e470831c05b5d9c7fd7a6270155b4413aed46b0df8a1cf4ba92f18dfee1226d66f6
6
+ metadata.gz: d37afe7c4a899c9274c638029eca78b731dcb41fda88b612c9d836a5f3ef0816ca812a4b1932e4067aaaf297b476e7f70d708a1cb739fe6128345e2988022e88
7
+ data.tar.gz: d0983df1a404ef3fcf0c35a44379d849e309980e2c27dc08e05c8f8ea41e380a60791c2efd9c5488bdb9667b2a22443790ba713e8c5cb0dc3e34afcef3907272
data/README.md CHANGED
@@ -79,6 +79,44 @@ Execute a subcommand, for example, normal deployment:
79
79
 
80
80
  $ bin/dolphin deploy go -e production
81
81
 
82
+ ## Extend with custom modules
83
+
84
+ To extend dolphin's functionality with your custom modules is easy. It is Ruby anyway. For example, to add Centos related functions:
85
+
86
+ # bin/dolphin
87
+ # adjust Centos config
88
+ class Dolphin::Centos < Dolphin::Base
89
+ desc "git", "install latest git"
90
+ def git
91
+ menu = [
92
+ "
93
+ # install rpmforge
94
+ wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
95
+ wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
96
+ sudo rpm --import RPM-GPG-KEY.dag.txt
97
+ sudo rpm -K rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
98
+ sudo rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
99
+ sudo cp ~/rpmforge.repo /etc/yum.repos.d/
100
+
101
+ # list repos
102
+ # yum repolist
103
+
104
+ # install git
105
+ sudo yum -y remove git
106
+ sudo yum clean all
107
+ sudo yum -y update
108
+ sudo yum -y install git
109
+ ",
110
+ ]
111
+
112
+ execute menu
113
+ end
114
+ end
115
+
116
+ class Dolphin::CLI < Thor
117
+ register(Dolphin::Centos, 'centos', 'centos', 'Adjust Centos config')
118
+ end
119
+
82
120
  ## Related gems
83
121
 
84
122
  * [capistrano]
@@ -2,287 +2,19 @@ require_relative "dolphin/version"
2
2
  require_relative "dolphin/base"
3
3
  require_relative "dolphin/lock"
4
4
  require_relative "dolphin/deploy"
5
+ require_relative "dolphin/setup"
6
+ require_relative "dolphin/nginx"
7
+ require_relative "dolphin/puma"
8
+ require_relative "dolphin/git"
5
9
 
6
10
  module Dolphin
7
11
 
8
- # =============================================================================
9
- # Setup
10
- # =============================================================================
11
- class Setup < Base
12
- desc "chruby", "install chruby"
13
- def chruby
14
- menu = [
15
- "
16
- # git clone
17
- if [ ! -d 'chruby' ]; then git clone https://github.com/postmodern/chruby.git ; fi
18
- # checkout tag
19
- cd chruby
20
- git checkout v0.3.5
21
- # install
22
- sudo make install
23
- ",
24
- ]
25
-
26
- execute menu
27
- end
28
-
29
- desc "repo", "repository set up."
30
- def repo
31
- menu = [
32
- "
33
- # init git repository
34
- cd #{@app_dir}
35
- git clone #{@github}
36
- ",
37
- "
38
- # set up tracking branch
39
- cd #{@deploy_dir}
40
- git checkout -b #{@branch} origin/#{@branch}
41
- ",
42
- ]
43
-
44
- execute menu
45
- end
46
-
47
- desc "ruby", "install ruby, arg: version"
48
- def ruby(version="2.0.0-p195")
49
- menu = [
50
- "
51
- # update ruby-build
52
- cd ruby-build
53
- git pull
54
- sudo ./install.sh
55
- ",
56
- "
57
- # install ruby
58
- sudo ruby-build #{version} /opt/rubies/ruby-#{version}
59
- ",
60
- ]
61
-
62
- execute menu
63
- end
64
-
65
- desc "select", "select ruby, arg: version"
66
- def select(version="2.0.0-p195")
67
- menu = [
68
- "
69
- # select ruby
70
- cd #{@app_dir}
71
- echo ruby-#{version} > .ruby-version
72
- ",
73
- ]
74
-
75
- execute menu
76
- end
77
-
78
- desc "bundler", "install bundler"
79
- def bundler
80
- menu = [
81
- "
82
- # install bundler
83
- sudo gem install bundler
84
- ",
85
- ]
86
-
87
- execute menu
88
- end
89
-
90
- desc "rvm", "remove rvm"
91
- def rvm
92
- menu = [
93
- "
94
- sudo yum -y remove move-rvm
95
- sudo rm -rf /usr/local/rvm
96
- ",
97
- ]
98
-
99
- execute menu
100
- end
101
-
102
- desc "apache", "remove apache"
103
- def apache
104
- menu = [
105
- "
106
- sudo chkconfig httpd.newhomesapi off
107
- sudo chkconfig httpd.newhomesrdc off
108
- sudo yum -y remove httpd
109
- ",
110
- ]
111
-
112
- execute menu
113
- end
114
-
115
- desc "git", "install latest git"
116
- def git
117
- menu = [
118
- "
119
- # install rpmforge
120
- wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
121
- wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
122
- sudo rpm --import RPM-GPG-KEY.dag.txt
123
- sudo rpm -K rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
124
- sudo rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
125
- sudo cp ~/rpmforge.repo /etc/yum.repos.d/
126
-
127
- # list repos
128
- # yum repolist
129
-
130
- # install git
131
- sudo yum -y remove git
132
- sudo yum clean all
133
- sudo yum -y update
134
- sudo yum -y install git
135
- ",
136
- ]
137
-
138
- execute menu
139
- end
140
-
141
- end
142
-
143
- # =============================================================================
144
- # Nginx
145
- # =============================================================================
146
- class Nginx < Base
147
- desc "install", "install nginx"
148
- def install
149
- menu = [
150
- "
151
- # set repo
152
- sudo cp ~/nginx.repo /etc/yum.repos.d/
153
-
154
- # list repos
155
- # yum repolist
156
-
157
- # install nginx
158
- sudo yum -y install nginx
159
- ",
160
- ]
161
-
162
- execute menu
163
- end
164
-
165
- desc "conf", "config nginx"
166
- def conf
167
- menu = [
168
- "
169
- sudo ln -sf #{@deploy_dir}/config/nginx/#{@application}.conf /etc/nginx/conf.d/#{@application}.conf
170
- ",
171
- ]
172
-
173
- execute menu
174
- end
175
-
176
- desc "start", "start nginx"
177
- def start
178
- menu = [
179
- "
180
- # common settings
181
- sudo service nginx start
182
- ",
183
- ]
184
-
185
- execute menu
186
- end
187
-
188
- desc "stop", "stop nginx"
189
- def stop
190
- menu = [
191
- "
192
- # common settings
193
- sudo service nginx stop
194
- ",
195
- ]
196
-
197
- execute menu
198
- end
199
-
200
- desc "restart", "restart nginx"
201
- def restart
202
- menu = [
203
- "
204
- # common settings
205
- sudo service nginx restart
206
- ",
207
- ]
208
-
209
- execute menu
210
- end
211
-
212
- end
213
-
214
- # =============================================================================
215
- # Git
216
- # =============================================================================
217
- class Git < Base
218
- desc "update", "Update code from github and keep local changes"
219
- def update
220
- menu = [
221
- "
222
- cd #{@deploy_dir}
223
- git fetch
224
- git stash
225
- git checkout #{@branch}
226
- git rebase origin/#{@branch}
227
- git stash apply
228
- git stash clear
229
- ",
230
- ]
231
-
232
- execute menu
233
- end
234
-
235
- end
236
-
237
- # =============================================================================
238
- # Puma
239
- # =============================================================================
240
- class Puma < Base
241
- desc "start", "start puma"
242
- def start
243
- menu = [
244
- "
245
- cd #{@deploy_dir}
246
- RAILS_ENV=#{@env} bundle exec puma -t 8:32 -e #{@env} -d -b unix://#{@sockets}/#{@application}.sock -S #{@pids}/#{@application}.state --control unix://#{@sockets}/pumactl.sock --pidfile #{@pids}/#{@application}.pid
247
- ",
248
- ]
249
-
250
- execute menu
251
- end
252
-
253
- desc "stop", "stop puma"
254
- def stop
255
- menu = [
256
- "
257
- cd #{@deploy_dir}
258
- RAILS_ENV=#{@env} bundle exec pumactl -S #{@pids}/#{@application}.state stop
259
- ",
260
- ]
261
-
262
- execute menu
263
- end
264
-
265
- desc "restart", "restart puma"
266
- def restart
267
- menu = [
268
- "
269
- cd #{@deploy_dir}
270
- # RAILS_ENV=#{@env} bundle exec pumactl -S #{@pids}/#{@application}.state restart
271
- kill -s SIGUSR2 `cat #{@pids}/#{@application}.pid`
272
- ",
273
- ]
274
-
275
- execute menu
276
- end
277
-
278
- end
279
-
280
12
  # =============================================================================
281
13
  # CLI
282
14
  # =============================================================================
283
15
  class CLI < Thor
284
- register(Setup, 'setup', 'setup', 'set up target server')
285
- register(Deploy, 'deploy', 'deploy', 'deploy to target server')
16
+ register(Setup, 'setup', 'setup', 'Set up target servers')
17
+ register(Deploy, 'deploy', 'deploy', 'Deploy to target server')
286
18
  register(Puma, 'puma', 'puma', 'Puma related commands')
287
19
  register(Nginx, 'nginx', 'nginx', 'Nginx related commands')
288
20
  register(Git, 'git', 'git', 'Git related commands')
@@ -0,0 +1,22 @@
1
+ # Git related commands
2
+ class Dolphin::Git < Dolphin::Base
3
+
4
+ desc "update", "Update code from github and keep local changes"
5
+ def update
6
+ menu = [
7
+ "
8
+ cd #{@deploy_dir}
9
+ git fetch
10
+ git stash
11
+ git checkout #{@branch}
12
+ git rebase origin/#{@branch}
13
+ git stash apply
14
+ git stash clear
15
+ ",
16
+ ]
17
+
18
+ execute menu
19
+ end
20
+
21
+ end
22
+
@@ -0,0 +1,70 @@
1
+ # Nginx related commands
2
+ class Dolphin::Nginx < Dolphin::Base
3
+
4
+ desc "install", "install nginx"
5
+ def install
6
+ menu = [
7
+ "
8
+ # set repo
9
+ sudo cp ~/nginx.repo /etc/yum.repos.d/
10
+
11
+ # list repos
12
+ # yum repolist
13
+
14
+ # install nginx
15
+ sudo yum -y install nginx
16
+ ",
17
+ ]
18
+
19
+ execute menu
20
+ end
21
+
22
+ desc "conf", "config nginx"
23
+ def conf
24
+ menu = [
25
+ "
26
+ sudo ln -sf #{@deploy_dir}/config/nginx/#{@application}.conf /etc/nginx/conf.d/#{@application}.conf
27
+ ",
28
+ ]
29
+
30
+ execute menu
31
+ end
32
+
33
+ desc "start", "start nginx"
34
+ def start
35
+ menu = [
36
+ "
37
+ # common settings
38
+ sudo service nginx start
39
+ ",
40
+ ]
41
+
42
+ execute menu
43
+ end
44
+
45
+ desc "stop", "stop nginx"
46
+ def stop
47
+ menu = [
48
+ "
49
+ # common settings
50
+ sudo service nginx stop
51
+ ",
52
+ ]
53
+
54
+ execute menu
55
+ end
56
+
57
+ desc "restart", "restart nginx"
58
+ def restart
59
+ menu = [
60
+ "
61
+ # common settings
62
+ sudo service nginx restart
63
+ ",
64
+ ]
65
+
66
+ execute menu
67
+ end
68
+
69
+ end
70
+
@@ -0,0 +1,42 @@
1
+ # Puma related commands
2
+ class Dolphin::Puma < Dolphin::Base
3
+
4
+ desc "start", "start puma"
5
+ def start
6
+ menu = [
7
+ "
8
+ cd #{@deploy_dir}
9
+ RAILS_ENV=#{@env} bundle exec puma -t 8:32 -e #{@env} -d -b unix://#{@sockets}/#{@application}.sock -S #{@pids}/#{@application}.state --control unix://#{@sockets}/pumactl.sock --pidfile #{@pids}/#{@application}.pid
10
+ ",
11
+ ]
12
+
13
+ execute menu
14
+ end
15
+
16
+ desc "stop", "stop puma"
17
+ def stop
18
+ menu = [
19
+ "
20
+ cd #{@deploy_dir}
21
+ RAILS_ENV=#{@env} bundle exec pumactl -S #{@pids}/#{@application}.state stop
22
+ ",
23
+ ]
24
+
25
+ execute menu
26
+ end
27
+
28
+ desc "restart", "restart puma"
29
+ def restart
30
+ menu = [
31
+ "
32
+ cd #{@deploy_dir}
33
+ # RAILS_ENV=#{@env} bundle exec pumactl -S #{@pids}/#{@application}.state restart
34
+ kill -s SIGUSR2 `cat #{@pids}/#{@application}.pid`
35
+ ",
36
+ ]
37
+
38
+ execute menu
39
+ end
40
+
41
+ end
42
+
@@ -0,0 +1,83 @@
1
+ # set up target servers
2
+ class Dolphin::Setup < Dolphin::Base
3
+
4
+ desc "chruby", "install chruby"
5
+ def chruby
6
+ menu = [
7
+ "
8
+ # git clone
9
+ if [ ! -d 'chruby' ]; then git clone https://github.com/postmodern/chruby.git ; fi
10
+ # checkout tag
11
+ cd chruby
12
+ git checkout v0.3.5
13
+ # install
14
+ sudo make install
15
+ ",
16
+ ]
17
+
18
+ execute menu
19
+ end
20
+
21
+ desc "repo", "repository set up."
22
+ def repo
23
+ menu = [
24
+ "
25
+ # init git repository
26
+ cd #{@app_dir}
27
+ git clone #{@github}
28
+ ",
29
+ "
30
+ # set up tracking branch
31
+ cd #{@deploy_dir}
32
+ git checkout -b #{@branch} origin/#{@branch}
33
+ ",
34
+ ]
35
+
36
+ execute menu
37
+ end
38
+
39
+ desc "ruby", "install ruby, arg: version"
40
+ def ruby(version="2.0.0-p195")
41
+ menu = [
42
+ "
43
+ # update ruby-build
44
+ cd ruby-build
45
+ git pull
46
+ sudo ./install.sh
47
+ ",
48
+ "
49
+ # install ruby
50
+ sudo ruby-build #{version} /opt/rubies/ruby-#{version}
51
+ ",
52
+ ]
53
+
54
+ execute menu
55
+ end
56
+
57
+ desc "select", "select ruby, arg: version"
58
+ def select(version="2.0.0-p195")
59
+ menu = [
60
+ "
61
+ # select ruby
62
+ cd #{@app_dir}
63
+ echo ruby-#{version} > .ruby-version
64
+ ",
65
+ ]
66
+
67
+ execute menu
68
+ end
69
+
70
+ desc "bundler", "install bundler"
71
+ def bundler
72
+ menu = [
73
+ "
74
+ # install bundler
75
+ sudo gem install bundler
76
+ ",
77
+ ]
78
+
79
+ execute menu
80
+ end
81
+
82
+ end
83
+
@@ -1,3 +1,3 @@
1
1
  module Dolphin
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dolphin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neng Xu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-14 00:00:00.000000000 Z
11
+ date: 2013-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -96,7 +96,11 @@ files:
96
96
  - lib/dolphin.rb
97
97
  - lib/dolphin/base.rb
98
98
  - lib/dolphin/deploy.rb
99
+ - lib/dolphin/git.rb
99
100
  - lib/dolphin/lock.rb
101
+ - lib/dolphin/nginx.rb
102
+ - lib/dolphin/puma.rb
103
+ - lib/dolphin/setup.rb
100
104
  - lib/dolphin/version.rb
101
105
  - lib/generators/dolphin/install_generator.rb
102
106
  - lib/generators/dolphin/templates/dolphin