rye 0.9.7 → 0.9.8

Sign up to get free protection for your applications and to get access to all the features.
Binary file
@@ -1,5 +1,11 @@
1
1
  RYE, CHANGES
2
2
 
3
+ #### 0.9.8 (2013-02-06) #############################
4
+
5
+ * ADDED: Rudimentary DSL (see tst/dsl_example.rb) [Randy D. Wallace Jr]
6
+ * CHANGE: All releases will now be signed. See "Installation" in the readme.
7
+
8
+
3
9
  #### 0.9.7 (2012-07-06) #############################
4
10
 
5
11
  * FIXED: STDERR output was printing to STDOUT in one case (Thanks rrepen)
@@ -21,7 +27,7 @@ RYE, CHANGES
21
27
 
22
28
  #### 0.9.3 (2011-01-29) #############################
23
29
 
24
- * ADDED: Rye::Hop for gateway support.
30
+ * ADDED: Rye::Hop for gateway support.
25
31
  (https://github.com/delano/rye/issues/closed#issue/10)
26
32
  * CHANGE: Don't overwrite :paranoid option
27
33
 
@@ -39,7 +45,7 @@ RYE, CHANGES
39
45
 
40
46
  #### 0.9.0 (2010-08-19) #############################
41
47
 
42
- * FIXED: Pubkeys correctly added for first connection.
48
+ * FIXED: Pubkeys correctly added for first connection.
43
49
  (NOTE: some state seems to be maintained by ssh-agent)
44
50
  * ADDED: Interactive and non-interactive shell support (via Net::SSH)
45
51
  * ADDED: Basic readline support for interactive mode
@@ -55,7 +61,7 @@ RYE, CHANGES
55
61
  #### 0.8.19 (2010-06-28) #############################
56
62
 
57
63
  * ADDED: Rye::Box#root?
58
- * ADDED: Better sudo handling.
64
+ * ADDED: Better sudo handling.
59
65
 
60
66
 
61
67
  #### 0.8.18 (2010-06-19) #############################
@@ -91,7 +97,7 @@ RYE, CHANGES
91
97
  #### 0.8.12 (2010-01-16) #############################
92
98
 
93
99
  * FIXED: Removed dependency on ssh-agent. Also fixes starting
94
- many instances of said executable.
100
+ many instances of said executable.
95
101
  * FIXED: file_append was overwriting when supplied a String (!)
96
102
  * ADDED: Use SSH config file by default [Justin Case]
97
103
 
@@ -102,7 +108,7 @@ RYE, CHANGES
102
108
 
103
109
  #### 0.8.10 (2009-10-07) #############################
104
110
 
105
- * CHANGE: Improved startup time.
111
+ * CHANGE: Improved startup time.
106
112
 
107
113
  #### 0.8.9 (2009-08-26) #############################
108
114
 
@@ -118,7 +124,7 @@ RYE, CHANGES
118
124
 
119
125
  #### 0.8.7 (2009-08-11) #############################
120
126
 
121
- * FIXED: Rye::Box info level output is cleaner
127
+ * FIXED: Rye::Box info level output is cleaner
122
128
  * FIXED: file_upload / download now expanding local tildas when safemode is disabled
123
129
  * ADDED: Interactive handling for removing gems
124
130
  * ADDED: dir_upload and dir_download
@@ -132,11 +138,11 @@ RYE, CHANGES
132
138
  #### 0.8.5 (2009-07-14) #############################
133
139
 
134
140
  * CHANGE: Rye::Box#getenv now accepts an option key name
135
- * CHANGE: When not in safe mode, method missing will execute a
141
+ * CHANGE: When not in safe mode, method missing will execute a
136
142
  method name as a shell command
137
- * ADDED: Rye::Box#execute for running arbitrary commands when
143
+ * ADDED: Rye::Box#execute for running arbitrary commands when
138
144
  not in safe mode
139
-
145
+
140
146
 
141
147
  #### 0.8.4 (2009-06-30) #############################
142
148
 
@@ -180,24 +186,24 @@ RYE, CHANGES
180
186
 
181
187
  #### 0.7.6 (2009-06-19) #############################
182
188
 
183
- * FIXED: Raise Rye::NoPty exception when Net::SSH returns message
189
+ * FIXED: Raise Rye::NoPty exception when Net::SSH returns message
184
190
  "Pseudo-terminal will not be allocated because stdin is not a terminal."
185
- * FIXED: Rye::Box#disconnect would hang in some instances. Now waits 3 seconds.
191
+ * FIXED: Rye::Box#disconnect would hang in some instances. Now waits 3 seconds.
186
192
  * FIXED: Bug in net_ssh_exec which was causing it to not return an exit code
187
- * CHANGE: All exceptions now inherit from Rye::Error (Runtimerror)
193
+ * CHANGE: All exceptions now inherit from Rye::Error (Runtimerror)
188
194
  * CHANGE: A NoPassword exception is raised when a password prompt returns nil.
189
- * CHANGE: pre_command_hook block arguments have changed:
195
+ * CHANGE: pre_command_hook block arguments have changed:
190
196
  NEW: complete command, user, host, nickname
191
197
  OLD: command, args, user, host, nickname
192
-
193
-
198
+
199
+
194
200
  #### 0.7.5 (2009-06-13) #############################
195
201
 
196
- * FIXED: Rye::Set methods were not accepting or passing blocks.
202
+ * FIXED: Rye::Set methods were not accepting or passing blocks.
197
203
  * ADDED: Rye::Set#user and Rye::Set#opts methods
198
204
  * ADDED: Rye::Box#nickname
199
205
  * ADDED: exception hooks for Rye::Box.
200
- * CHANGE: Rye::Set method missing now forwards to Rye::Box
206
+ * CHANGE: Rye::Set method missing now forwards to Rye::Box
201
207
  methods instead of Rye::Cmd
202
208
 
203
209
 
@@ -217,9 +223,9 @@ RYE, CHANGES
217
223
  * ADDED: Rye::Cmd#safely and Rye::Cmd#unsafely methods
218
224
  * ADDED: Rye::Cmd#digest_md5, Rye::Cmd#digest_sha1, Rye::Cmd#digest_sha2 methods
219
225
  * ADDED: Rye::Cmd#file_verified? method
220
- * ADDED: Rye::Box#net_ssh_exec! now checks and correctly prompts for a sudo response password.
221
- Note: this will be upgraded in for 0.8 to support any prompt.
222
- * FIXED: Net::SSH paranoid now set to false when safe mode is disabled.
226
+ * ADDED: Rye::Box#net_ssh_exec! now checks and correctly prompts for a sudo response password.
227
+ Note: this will be upgraded in for 0.8 to support any prompt.
228
+ * FIXED: Net::SSH paranoid now set to false when safe mode is disabled.
223
229
 
224
230
 
225
231
  #### 0.7.2 (2009-06-01) #############################
@@ -230,14 +236,14 @@ RYE, CHANGES
230
236
 
231
237
  * CHANGE: Removed broken grep method from Rye::Rap
232
238
  * FIXED: Bug which prevented setting relative paths in non-home directory
233
- * ADDED: Rye::Cmd#add_command helper for adding new command methods.
239
+ * ADDED: Rye::Cmd#add_command helper for adding new command methods.
234
240
  * ADDED: pre-command-hook now sends the hostname to the block
235
241
 
236
242
 
237
243
  #### 0.7.0 (2009-05-30) #############################
238
244
 
239
245
  * CHANGE: Rye::Box now uses unique instance variable names to encourage using
240
- instance variables in batch command blocks.
246
+ instance variables in batch command blocks.
241
247
  * ADDED: Rye::Box#file_append
242
248
 
243
249
  #### 0.6.6 (2009-05-21) #############################
@@ -253,7 +259,7 @@ RYE, CHANGES
253
259
 
254
260
  #### 0.6.4 (2009-05-04) #############################
255
261
 
256
- * FIXED: authorize_remote was not returning to the directory it started with.
262
+ * FIXED: authorize_remote was not returning to the directory it started with.
257
263
  * ADDED: pre and post command hooks to Rye::Box
258
264
  * ADDED: Rye::Box.batch
259
265
  * ADDED: Support for OS X for Rye::Box.guess_user_home
@@ -283,13 +289,13 @@ RYE, CHANGES
283
289
  * FIXED: handling of Process::Status ($?) in Rye.shell
284
290
  * FIXED: Removed reference to Rudy::Error in bin/rye
285
291
  * ADDED: Rye::Box.getenv
286
- * ADDED: Rye::Box.can?
292
+ * ADDED: Rye::Box.can?
287
293
  * ADDED: Rye::Box.umask= (a similar work around as cd / [])
288
294
  * ADDED: Rye::Box.file_exists?
289
295
  * ADDED: Rye::Box.authorize_keys_remote can now authorize for a different user
290
296
  * ADDED: Rye::Box.upload and Rye::Box.download
291
297
  * ADDED: Rye::SystemInfo.tmpdir
292
- * CHANGE: Rye::Box.prep_args doesn't treat multicharacter Symbols as
298
+ * CHANGE: Rye::Box.prep_args doesn't treat multicharacter Symbols as
293
299
  command-line options any more (single character ones are still converted)
294
300
  * CHANGE: Renamed Rye::Box.add_env to Rye::Box.setenv
295
301
  * CHANGE: rm and kill are available in Rye::Cmd by default
@@ -310,9 +316,9 @@ Rye.shell and Rye::Box.run_command (SSH) commands.
310
316
  #### 0.5.3 (2009-04-20) #############################
311
317
 
312
318
  * FIXED: Rye::Box.connect raises exceptions instead of exits
313
- * ADDED: Rye::Box.connect now rescues HostKeyMismatch exceptions and
314
- prompts for a response.
315
-
319
+ * ADDED: Rye::Box.connect now rescues HostKeyMismatch exceptions and
320
+ prompts for a response.
321
+
316
322
  #### 0.5.2 (2009-04-19) #############################
317
323
 
318
324
  * FIXED: authorize-local command attempted to connect via SSH before authorizing.
@@ -336,21 +342,21 @@ Rye.shell and Rye::Box.run_command (SSH) commands.
336
342
 
337
343
  * ADDED: More helpful debug output
338
344
  * ADDED: hostname command to Rye::Cmd
339
- * ADDED: Rye::Box.connect now supports multiple password attempts if STDIN.tty returns true
345
+ * ADDED: Rye::Box.connect now supports multiple password attempts if STDIN.tty returns true
340
346
  * ADDED: Rye::Box.interactive_ssh for opening an SSH session to the given box.
341
- * CHANGE: Using OpenSSH's ssh-agent but also let's Net::SSH handle the ssh keys.
347
+ * CHANGE: Using OpenSSH's ssh-agent but also let's Net::SSH handle the ssh keys.
342
348
 
343
349
 
344
350
  #### 0.4.1 (2009-04-06) #############################
345
351
 
346
352
  * FIXED: Rye::Box.authorize_keys_remote was not disabling safe mode properly
347
- * FIXED: Disabled debug mode.
348
- * ADDED: "rye authorize" now specifically enforces the auth method order
353
+ * FIXED: Disabled debug mode.
354
+ * ADDED: "rye authorize" now specifically enforces the auth method order
349
355
 
350
356
 
351
357
  #### 0.4.0 (2009-04-06) #############################
352
358
 
353
- * FIXED: Box.run_command was parsing arguments incorrectly
359
+ * FIXED: Box.run_command was parsing arguments incorrectly
354
360
  * FIXED: Box.net_ssh_exec was working on nil stderr
355
361
  * FIXED: bin/try handles the new command exceptions
356
362
  * ADDED: to_s and inspect methods for cleaner debugging output
@@ -359,8 +365,8 @@ Rye.shell and Rye::Box.run_command (SSH) commands.
359
365
  * ADDED: Command switches can now be sent as Symbols (rbox.ls(:h))
360
366
  * ADDED: Rye.host_keys
361
367
  * ADDED: bin/rye
362
- * ADDED: commands now raise a Rye::Err exception
363
- when the command returns an exit code greater than 0.
368
+ * ADDED: commands now raise a Rye::Err exception
369
+ when the command returns an exit code greater than 0.
364
370
  * CHANGE: Box.add_command renamed to Box.run_command
365
371
 
366
372
 
@@ -375,9 +381,9 @@ Rye.shell and Rye::Box.run_command (SSH) commands.
375
381
 
376
382
  * FIXED: Rye::Box wasn't properly adding keypairs to SSH Agent
377
383
  * FIXED: Rye::Box.method_missing Symbol/String ambiguity
378
- * ADDED: Rye::Set supports executing commands parallel
384
+ * ADDED: Rye::Set supports executing commands parallel
379
385
  * ADDED: Rye::Rap now contains STDERR output from command
380
- * ADDED: Supports all options provided by Net::SSH#start. This
386
+ * ADDED: Supports all options provided by Net::SSH#start. This
381
387
  includes support for password logins and proxies.
382
388
  * ADDED: Safe mode can now be disabled (to allow file globs
383
389
  and environment variable access).
@@ -398,5 +404,5 @@ Initial public release
398
404
 
399
405
  #### TODO ###########################################
400
406
 
401
- * Re-implement Rye::Rap as an Observable StringIO object for dynamic printing of output.
407
+ * Re-implement Rye::Rap as an Observable StringIO object for dynamic printing of output.
402
408
  * Fingerprints: ssh-keygen -l -f id_rsa_repos.pub
@@ -1,9 +1,10 @@
1
1
  = Rye - v0.9
2
2
 
3
- <b>Safely run SSH commands on a bunch of machines at the same time (from Ruby)</b>.
3
+ <strong>Safely run SSH commands on a bunch of machines at the same time (from Ruby)</stong>.
4
4
 
5
5
  Inspired by Rush[http://rush.heroku.com] and compatible with Ruby 1.8, 1.9, and JRuby 1.3+!
6
6
 
7
+ <em>As of 0.9.8, all gem releases are signed. See Installation.</em>
7
8
 
8
9
  == Overview
9
10
 
@@ -14,14 +15,14 @@ Rye does not require anything to be installed on the server side (other than an
14
15
 
15
16
  == Example 1 -- Execute commands on a remote machine
16
17
 
17
- Shell commands are executed by calling methods on a Rye::Box object.
18
-
18
+ Shell commands are executed by calling methods on a Rye::Box object.
19
+
19
20
  rbox = Rye::Box.new('hostname')
20
21
  rbox.pwd # => "/home/rye"
21
22
  rbox.uname :a # => "Darwin rye-stage 9.7.0 ..."
22
23
 
23
24
  Method arguments are sent directly as arguments to the shell command. Single-character Symbols are assumed to be single-character switches. <em>e.g. <tt>rbox.uname :a</tt> becomes <tt>uname -a</tt>.</em>
24
-
25
+
25
26
  The return value for a command is a modified Array containing the contents of STDOUT split by line. It also gives access to STDERR and the exit code
26
27
 
27
28
  ret = rbox.uptime # => "11:02 up 16:01, 3 users"
@@ -41,12 +42,12 @@ You can change directories.
41
42
  rbox['/etc'].ls # => ['apache', 'init.d', ...]
42
43
  rbox.pwd # => '/etc'
43
44
  rbox.cd # => '/home/rye'
44
-
45
+
45
46
  You can specify environment variables.
46
47
 
47
48
  rbox.setenv('TIPPLE', "Forty Creek")
48
- rbox.getenv 'TIPPLE' # => "Forty Creek"
49
-
49
+ rbox.getenv 'TIPPLE' # => "Forty Creek"
50
+
50
51
 
51
52
  == Example 3 -- Adding and removing commands
52
53
 
@@ -54,7 +55,7 @@ You can add and remove commands to the whitelist.
54
55
 
55
56
  Rye::Cmd.add_command :anything, '/usr/bin/uptime'
56
57
  rbox = Rye::Box.new
57
- rbox.anything
58
+ rbox.anything
58
59
  Rye::Cmd.remove_command :anything
59
60
  rbox.anything # => Rye::CommandNotFound exception
60
61
 
@@ -66,18 +67,18 @@ Safe mode can be disabled on one of the following ways.
66
67
  rbox = Rye::Box.new 'HOST', :safe => false
67
68
  OR
68
69
  rbox.disable_safe_mode
69
-
70
+
70
71
  When safe-mode is disabled, you can run any command (regardless of what is defined in the whitelist) with any valid arguments (fileglobs, tildas, etc...).
71
72
 
72
73
  rbox.kill '-SIGHUP', 1928111
73
74
  rbox.rm 'path/2/*'
74
-
75
+
75
76
  You can also execute any valid shell command.
76
77
 
77
78
  rbox.execute 'ps aux | grep ruby > /tmp/ruby-process-list'
78
79
 
79
80
  See the "About Safe Mode" section below for more information.
80
-
81
+
81
82
 
82
83
  == Example 5a -- Accessing Multiple Machines
83
84
 
@@ -86,26 +87,26 @@ Shell commands can be executed on multiple machines using a Rye::Set object. Cre
86
87
  rbox = Rye::Box.new 'HOST1'
87
88
  rset = Rye::Set.new
88
89
  rset.add_boxes rbox, 'HOST2' # Add boxes as hostnames or objects
89
-
90
+
90
91
  Then call methods just like with Rye::Box, except now the return value is an Array of Arrays. The order of return values matches the order the machines were added to the set.
91
-
92
+
92
93
  rset.hostname # => [["HOST1"], ["HOST2"]]
93
94
  rset.uname # => [["Darwin"], ["Linux"]]
94
-
95
+
95
96
  == Example 5b -- Accessing Multiple Machines in Parallel
96
-
97
+
97
98
  By default, Rye::Set connects to each machine sequentially in the order they were added to the set. Commands can also be run in parallel.
98
99
 
99
100
  rset = Rye::Set.new "SETNAME", :parallel => true
100
101
  OR
101
102
  rset.parallel = true
102
-
103
-
103
+
104
+
104
105
  == Example 6 -- File Transfers
105
106
 
106
107
  rbox = Rye::Box.new "localhost"
107
108
 
108
- rbox.file_upload "README.rdoc", "/tmp"
109
+ rbox.file_upload "README.rdoc", "/tmp"
109
110
 
110
111
  applejack = StringIO.new "Some in-memory content"
111
112
  rbox.file_upload applejack, "/tmp/applejack.txt"
@@ -152,7 +153,7 @@ When working with machines that are behind another host (assuming that you have
152
153
 
153
154
  rbox = Rye::Box.new('filibuster', :via => 'firewall.lan')
154
155
 
155
- The information for the Rye::Box is then relative from the position of the firewall.
156
+ The information for the Rye::Box is then relative from the position of the firewall.
156
157
  So, the hostname 'filibuster' is used from 'firewall.lan'
157
158
 
158
159
  == Example 8b -- Hopping Firewalls, in groups
@@ -165,6 +166,12 @@ So, the hostname 'filibuster' is used from 'firewall.lan'
165
166
  rset.uptime
166
167
  # => [[17:17:44 up 548 days, 13:37, 20 users, load average: 0.12, 0.07, 0.06], [01:17:49 up 6 days, 1:39, 9 users, load average: 0.13, 0.09, 0.09]]
167
168
 
169
+ == Example 9 -- Disable password prompt
170
+
171
+ If you're running in a terminal but you want <tt>Net::SSH::AuthenticationFailed</tt> to be raised instead of getting a password prompt when authentication fails, set <tt>:password_prompt</tt> option to false:
172
+
173
+ rbox = Rye::Box.new("foo.com", :user => "dan", :password => "inkorrect", :password_prompt => false)
174
+ rbox.uptime # => raises Net::SSH::AuthenticationFailed
168
175
 
169
176
  == About Safe-Mode
170
177
 
@@ -175,7 +182,7 @@ In safe-mode:
175
182
  * Pipes and operators don't work: <tt>|, &&, >, <, ||, ~</tt>, etc...
176
183
  * Backticks don't work either: <tt>procs=`ps aux`</tt>
177
184
 
178
- Why? In safe-mode, all command arguments are escaped which turns all arguments into their literal values.
185
+ Why? In safe-mode, all command arguments are escaped which turns all arguments into their literal values.
179
186
 
180
187
  Using a Ruby interface to execute shell commands is pretty awesome, particularly to run them on several machines simultaneously. That's a lot of power and it's potentially very dangerous. That's why Rye disables this stuff by default. There's probably a way to do it safely but it's not obvious yet (to me). If you have any ideas, I'd love to hear them!
181
188
 
@@ -198,43 +205,50 @@ Rye permits only a limited number of system commands to be run. This default whi
198
205
 
199
206
  == Installation
200
207
 
201
- Via Rubygems, one of:
208
+ Via Rubygems:
202
209
 
203
210
  $ gem install rye
204
211
 
212
+ However, in order to be sure the code you're install is the code I wrote, I recommended that you verify the signiture[http://docs.rubygems.org/read/chapter/21]. To do this
213
+
214
+ # Add the public key as a trusted certificate
215
+ # (You only need to do this once)
216
+ $ curl -O https://raw.github.com/delano/rye/master/gem-public_cert.pem
217
+ $ gem cert --add gem-public_cert.pem
218
+
219
+ $ gem install rye -P HighSecurity
220
+
221
+ If you don't add the public key, you'll see an error like "Couldn't verify data signature". If you're still having trouble let me know and I'll give you a hand.
222
+
205
223
  or via download:
206
224
 
207
225
  * rye-latest.tar.gz[http://github.com/delano/rye/tarball/latest]
208
226
  * rye-latest.zip[http://github.com/delano/rye/zipball/latest]
209
227
 
210
- == Known Issues
211
-
212
- * Rye doesn't read the ~/.ssh/config file yet
213
- * No support for STDIN for commands.
214
- * Limited support for interactive shells.
215
228
 
216
- If you find one let me know!
229
+ == Contributing
217
230
 
231
+ The easiest way to contribute is to open an issue[https://github.com/delano/rye/issues] for bugs and feature requests. I'm also very open to thoughtful and interesting pull[https://github.com/delano/rye/pulls] requests[https://github.com/delano/rye/pulls. Fork and be merry.
218
232
 
219
233
  == Thanks
220
234
 
221
235
  * Kalin Harvey (http://rely.ca)
222
236
  * Rush[http://github.com/adamwiggins/rush] and Capistrano[http://github.com/jamis/capistrano/blob/master/lib/capistrano/shell.rb] for the inspiration.
223
- * Mike Cline for giving the okay to use the Rye name.
237
+ * Mike Cline for giving the okay to use the Rye name.
224
238
  * Justin Case (http://github.com/justincase/) for fixes
225
239
  * Vincent Batts (http://hashbangbash.com/) for Rye::Hop
226
240
 
227
241
 
228
242
  == More Info
229
243
 
230
- * Codes[http://github.com/delano/rye]
244
+ * Codes[https://github.com/delano/rye]
231
245
  * Rdocs[http://delano.github.com/rye]
232
246
  * Inspiration[http://www.youtube.com/watch?v=_StUVh6ENuw]
233
247
 
234
248
 
235
249
  == Related Projects
236
250
 
237
- * Rush[http://github.com/adamwiggins/rush]
251
+ * Rush[https://github.com/adamwiggins/rush]
238
252
 
239
253
 
240
254
  == Credits
data/Rakefile CHANGED
@@ -1,90 +1,49 @@
1
- require 'rubygems'
2
- require 'rake/clean'
3
- require 'rake/gempackagetask'
4
- require 'fileutils'
5
- include FileUtils
6
-
7
- begin
8
- require 'hanna/rdoctask'
9
- rescue LoadError
10
- require 'rake/rdoctask'
11
- end
12
-
13
-
14
- task :default => :package
15
-
16
- # CONFIG =============================================================
17
-
18
- # Change the following according to your needs
19
- README = "README.rdoc"
20
- CHANGES = "CHANGES.txt"
21
- LICENSE = "LICENSE.txt"
22
-
23
- # Files and directories to be deleted when you run "rake clean"
24
- CLEAN.include [ 'doc', 'pkg', '*.gem', '.config' ]
25
-
26
- # Virginia assumes your project and gemspec have the same name
27
- name = (Dir.glob('*.gemspec') || ['rye']).first.split('.').first
28
- load "#{name}.gemspec"
29
- version = @spec.version
1
+ require "rubygems"
2
+ require "rake"
3
+ require "rake/clean"
4
+ require "rdoc/task"
30
5
 
31
- # That's it! The following defaults should allow you to get started
32
- # on other things.
6
+ task :default => ["build"]
7
+ CLEAN.include [ 'pkg', 'rdoc' ]
8
+ name = "rye"
33
9
 
10
+ $:.unshift File.join(File.dirname(__FILE__), 'lib')
11
+ require name
12
+ version = Rye::VERSION.to_s
34
13
 
35
- # TESTS/SPECS =========================================================
36
-
37
-
38
-
39
- # INSTALL =============================================================
40
-
41
- Rake::GemPackageTask.new(@spec) do |p|
42
- p.need_tar = true if RUBY_PLATFORM !~ /mswin/
43
- end
44
-
45
- task :build => [ :release ]
46
- task :release => [ :rdoc, :package ]
47
- task :install => [ :rdoc, :package ] do
48
- sh %{sudo gem install pkg/#{name}-#{version}.gem}
49
- end
50
- task :uninstall => [ :clean ] do
51
- sh %{sudo gem uninstall #{name}}
52
- end
53
-
54
-
55
- # RUBYFORGE RELEASE / PUBLISH TASKS ==================================
56
-
57
- if @spec.rubyforge_project
58
- desc 'Publish website to rubyforge'
59
- task 'publish:rdoc' => 'doc/index.html' do
60
- sh "scp -rp doc/* rubyforge.org:/var/www/gforge-projects/#{name}/"
61
- end
62
-
63
- desc 'Public release to rubyforge'
64
- task 'publish:gem' => [:package] do |t|
65
- sh <<-end
66
- rubyforge add_release -o Any -a #{CHANGES} -f -n #{README} #{name} #{name} #{@spec.version} pkg/#{name}-#{@spec.version}.gem &&
67
- rubyforge add_file -o Any -a #{CHANGES} -f -n #{README} #{name} #{name} #{@spec.version} pkg/#{name}-#{@spec.version}.tgz
68
- end
14
+ begin
15
+ require "jeweler"
16
+ Jeweler::Tasks.new do |s|
17
+ s.version = version
18
+ s.name = name
19
+ s.rubyforge_project = s.name
20
+ s.summary = "Run SSH commands on a bunch of machines at the same time (from Ruby)."
21
+ s.description = "Run SSH commands on a bunch of machines at the same time (from Ruby)."
22
+ s.email = "delano@solutious.com"
23
+ s.homepage = "https://github.com/delano/rye"
24
+ s.authors = ["Delano Mandelbaum"]
25
+ s.add_dependency 'annoy'
26
+ s.add_dependency 'sysinfo', '>= 0.7.3'
27
+ s.add_dependency 'highline', '>= 1.5.1'
28
+ s.add_dependency 'net-ssh', '>= 2.0.13'
29
+ s.add_dependency 'net-scp', '>= 1.0.2'
30
+ s.add_dependency 'docile', '>= 1.0.1'
31
+
32
+ s.signing_key = File.join('/mnt/gem/', 'gem-private_key.pem')
33
+ s.cert_chain = ['gem-public_cert.pem']
69
34
  end
35
+ Jeweler::GemcutterTasks.new
36
+ rescue LoadError
37
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
70
38
  end
71
39
 
72
-
73
-
74
- # RUBY DOCS TASK ==================================
75
-
76
- Rake::RDocTask.new do |t|
77
- t.rdoc_dir = 'doc'
78
- t.title = @spec.summary
79
- t.options << '--line-numbers' << '-A cattr_accessor=object'
80
- t.options << '--charset' << 'utf-8'
81
- t.rdoc_files.include(LICENSE)
82
- t.rdoc_files.include(README)
83
- t.rdoc_files.include(CHANGES)
84
- t.rdoc_files.include('bin/*')
85
- t.rdoc_files.include('lib/**/*.rb')
40
+ RDoc::Task.new do |rdoc|
41
+ rdoc.rdoc_dir = "rdoc"
42
+ rdoc.title = "#{name} #{version}"
43
+ rdoc.rdoc_files.include("README*")
44
+ rdoc.rdoc_files.include("LICENSE.txt")
45
+ rdoc.rdoc_files.include("VERSION")
46
+ rdoc.rdoc_files.include("bin/*.rb")
47
+ rdoc.rdoc_files.include("lib/**/*.rb")
86
48
  end
87
49
 
88
-
89
-
90
-