shelly 0.4.29.pre → 0.4.29

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MzIyNDQ1M2JiYWFjODQzODI5MDNhNmJjMzVmMDkyMzEwNTJmMzc4MQ==
4
+ NWNiN2MyNmY4ZGU5NDU4YWY0YzM5YTUzNGNmZWRkMjI5MDBjODU5NQ==
5
5
  data.tar.gz: !binary |-
6
- NDQwN2FjNTRmMTg2Y2JlNDE3YWM0ZjIxMDhmMmM5ODg5ODA2ZjhmYg==
6
+ OWI4ZDNmNGI0ZWE2NmFkNDQzN2YzMDY3YjQ2ODczYzkzNmMzNGVlZg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZDZkZGJjYTY3NTg0MTFjYTI0YmI1NzQxZWNhYjE4OTRkYTNhMmUzNzM4MDk5
10
- Mzk3YTExYzM2M2UyYTVlN2Y0ZWNjMzI0YWVmMzI3NzhlNmFlMjJkMTlhNDg4
11
- ZTk1MzRkZDkxODNhNDc3YmY0NTFlNGRhMTdjMmM0NDQ1ZDRlMjg=
9
+ ZTRkNGNhZGJjMmFhMzM4MDBlYzY4ZWIzMWM1YTg0MDk2YWQ4ZmQyNTNjZGEx
10
+ Mjc4MWRhMTRjN2I1ZGQ4OGY0YjVkODFmYjU4ZGY0Mjk2NDkxNjljNjhmZjQ2
11
+ NjE2YTgzMTI1ZWJkYjEzZmJkNGE1MTEyOTU2YzgzY2IzZmIxZGE=
12
12
  data.tar.gz: !binary |-
13
- NjM4ZWZjMmZjZTY5MzIwOTkzOTM0ZmVjODU4OGQ0NWFkZDZmNzc3MDc2NTc1
14
- MzBkYTIwY2YwNzgxOTFkYjU5YjZjZDM4Nzk4NjcxMmJkZDc4NmQyN2I0NDNi
15
- MmI2OWRiMjE3MjZmYTk4NzNjMmYzMGQzNWNmYTBlYTk2NTNjZmI=
13
+ M2ZkODAzMjBkZmMxOWUxNmE0NjQzM2IyY2QwZmVkMmIyYWYwMmU1ZTEwZTFk
14
+ OTQyODE4ZjZkYWJhY2QyMmNkM2ZhYzI0NzAyYTg4ZTUwZmQ5ZjFlNDJiYjgx
15
+ YTI0ZTZkY2Q3ZGJlOTMxMDM4MjZlNWFiMTU2ZTg1ZWZkZTAyNjQ=
data/CHANGELOG.md CHANGED
@@ -1,5 +1,7 @@
1
- ## master
1
+ ## 0.4.29 / 2014-03-27
2
2
 
3
+ * [bugfix] Use childprocess to start ssh related commands. Fixes tty issue
4
+ when using `shelly console` on JRuby
3
5
  * [bugfix] Capture password without echo only if terminal is present
4
6
  * [feature] Support for `shelly ssh` command
5
7
 
data/lib/shelly/app.rb CHANGED
@@ -1,9 +1,13 @@
1
1
  require 'erb'
2
2
  require 'launchy'
3
+ require 'childprocess'
4
+ require 'shellwords'
3
5
  require 'shelly/backup'
4
6
 
5
7
  module Shelly
6
8
  class App < Model
9
+ include ::Shellwords
10
+
7
11
  DATABASE_KINDS = %w(postgresql mongodb redis)
8
12
  DATABASE_CHOICES = DATABASE_KINDS + %w(none)
9
13
  SERVER_SIZES = %w(small large)
@@ -448,12 +452,12 @@ module Shelly
448
452
 
449
453
  def ssh(options = {})
450
454
  conn = tunnel_connection("ssh", options[:server])
451
- system "ssh #{ssh_options(conn)} -t -t #{conn['host']} #{options[:command]}"
455
+ childprocess("ssh #{ssh_options(conn)} -t -t #{conn['host']} #{options[:command]}")
452
456
  end
453
457
 
454
458
  def ssh_with_db_server(options = {})
455
459
  conn = configured_db_server_connection(options[:server])
456
- system "ssh #{ssh_options(conn)} -t -t #{conn['host']} #{options[:command]}"
460
+ childprocess("ssh #{ssh_options(conn)} -t -t #{conn['host']} #{options[:command]}")
457
461
  end
458
462
 
459
463
  def ssh_options(conn)
@@ -463,5 +467,13 @@ module Shelly
463
467
  def rsync(source, destination, conn, options = "")
464
468
  system "rsync --archive --verbose --compress #{options} -e 'ssh #{ssh_options(conn)}' --progress #{source} #{destination}"
465
469
  end
470
+
471
+ def childprocess(command)
472
+ ChildProcess.posix_spawn = true
473
+ process = ::ChildProcess.build(*shellwords(command))
474
+ process.io.inherit!
475
+ process.start
476
+ process.wait
477
+ end
466
478
  end
467
479
  end
@@ -1,3 +1,3 @@
1
1
  module Shelly
2
- VERSION = "0.4.29.pre"
2
+ VERSION = "0.4.29"
3
3
  end
data/shelly.gemspec CHANGED
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.add_runtime_dependency "progressbar"
31
31
  s.add_runtime_dependency "launchy"
32
32
  s.add_runtime_dependency "netrc"
33
+ s.add_runtime_dependency "childprocess"
33
34
 
34
35
  s.files = `git ls-files`.split("\n")
35
36
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -420,7 +420,7 @@ describe Shelly::App do
420
420
  it "should return result of rake task" do
421
421
  @client.stub(:tunnel).and_return(
422
422
  {"host" => "console.example.com", "port" => "40010", "user" => "foo"})
423
- @app.should_receive(:system).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com rake_runner \"test\"")
423
+ @app.should_receive(:childprocess).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com rake_runner \"test\"")
424
424
  @app.rake("test")
425
425
  end
426
426
  end
@@ -429,7 +429,7 @@ describe Shelly::App do
429
429
  it "should return result of dbconsole" do
430
430
  @client.stub(:configured_db_server).and_return(
431
431
  {"host" => "console.example.com", "port" => "40010", "user" => "foo"})
432
- @app.should_receive(:system).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com start_dbconsole")
432
+ @app.should_receive(:childprocess).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com start_dbconsole")
433
433
  @app.dbconsole
434
434
  end
435
435
  end
@@ -438,7 +438,7 @@ describe Shelly::App do
438
438
  it "should return result of mongoconsole" do
439
439
  @client.stub(:configured_db_server).and_return(
440
440
  {"host" => "console.example.com", "port" => "40010", "user" => "foo"})
441
- @app.should_receive(:system).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com start_mongodb")
441
+ @app.should_receive(:childprocess).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com start_mongodb")
442
442
  @app.mongoconsole
443
443
  end
444
444
  end
@@ -447,7 +447,7 @@ describe Shelly::App do
447
447
  it "should return result of redis-cli" do
448
448
  @client.stub(:configured_db_server).and_return(
449
449
  {"host" => "console.example.com", "port" => "40010", "user" => "foo"})
450
- @app.should_receive(:system).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com start_redis")
450
+ @app.should_receive(:childprocess).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com start_redis")
451
451
  @app.redis_cli
452
452
  end
453
453
  end
@@ -478,14 +478,14 @@ describe Shelly::App do
478
478
  it "should run ssh with all parameters" do
479
479
  @client.stub(:tunnel).and_return(
480
480
  {"host" => "console.example.com", "port" => "40010", "user" => "foo"})
481
- @app.should_receive(:system).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com ")
481
+ @app.should_receive(:childprocess).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com ")
482
482
  @app.ssh_console
483
483
  end
484
484
 
485
485
  context "when server passed" do
486
486
  it "should request console on given server" do
487
487
  @client.should_receive(:tunnel).with("foo-staging", "ssh", "app1").and_return({})
488
- @app.stub(:system)
488
+ @app.should_receive(:childprocess)
489
489
  @app.console("app1")
490
490
  end
491
491
  end
@@ -495,14 +495,14 @@ describe Shelly::App do
495
495
  it "should run ssh with all parameters" do
496
496
  @client.stub(:tunnel).and_return(
497
497
  {"host" => "console.example.com", "port" => "40010", "user" => "foo"})
498
- @app.should_receive(:system).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com start_console")
498
+ @app.should_receive(:childprocess).with("ssh -o StrictHostKeyChecking=no -p 40010 -l foo -t -t console.example.com start_console")
499
499
  @app.console
500
500
  end
501
501
 
502
502
  context "when server passed" do
503
503
  it "should request console on given server" do
504
504
  @client.should_receive(:tunnel).with("foo-staging", "ssh", "app1").and_return({})
505
- @app.stub(:system)
505
+ @app.should_receive(:childprocess)
506
506
  @app.console("app1")
507
507
  end
508
508
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shelly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.29.pre
4
+ version: 0.4.29
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shelly Cloud team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-26 00:00:00.000000000 Z
11
+ date: 2014-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -220,6 +220,20 @@ dependencies:
220
220
  - - ! '>='
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: childprocess
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ! '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ! '>='
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
223
237
  description: Tool for managing applications and clouds at shellycloud.com
224
238
  email:
225
239
  - devs@shellycloud.com
@@ -329,9 +343,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
329
343
  version: '0'
330
344
  required_rubygems_version: !ruby/object:Gem::Requirement
331
345
  requirements:
332
- - - ! '>'
346
+ - - ! '>='
333
347
  - !ruby/object:Gem::Version
334
- version: 1.3.1
348
+ version: '0'
335
349
  requirements: []
336
350
  rubyforge_project: shelly
337
351
  rubygems_version: 2.2.2