rsh2 0.0.1 → 0.0.2

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.
Files changed (5) hide show
  1. data/Rakefile +2 -2
  2. data/lib/rsh/box.rb +7 -2
  3. data/readme.md +22 -2
  4. data/spec/box_spec.rb +6 -2
  5. metadata +3 -3
data/Rakefile CHANGED
@@ -2,8 +2,8 @@ require 'rake_ext'
2
2
 
3
3
  project(
4
4
  name: "rsh2",
5
- version: "0.0.1",
6
- summary: "ruby ssh and io",
5
+ version: "0.0.2",
6
+ summary: "Tiny wrapper over Net::SSH and Net::SFTP",
7
7
 
8
8
  author: "Alexey Petrushin",
9
9
  homepage: "http://github.com/alexeypetrushin/rssh"
data/lib/rsh/box.rb CHANGED
@@ -132,9 +132,14 @@ module Rsh
132
132
  end
133
133
 
134
134
  def bash cmd
135
- code, stdout, stderr = driver.exec cmd
135
+ code, stdout, stderr = exec cmd
136
136
  raise "can't execute '#{cmd}'!" unless code == 0
137
- return stdout, stderr
137
+ raise stderr unless stderr.empty?
138
+ stdout
139
+ end
140
+
141
+ def exec cmd
142
+ driver.exec cmd
138
143
  end
139
144
 
140
145
  protected
data/readme.md CHANGED
@@ -1,4 +1,24 @@
1
- TODO
1
+ # Tiny wrapper over Net::SSH and Net::SFTP
2
+
3
+ Because they are too hard to use and have terrible API design.
4
+
5
+ box = Rsh::Box.new host: 'webapp.com', ssh: {user: 'root', password: 'secret'}
6
+
7
+ stdout = box.bash 'ls /'
8
+ code, stdout, stderr = box.exec 'ls /'
9
+
10
+ box.upload_directory '/my_project', '/apps/my_project'
11
+ box.bash 'nohup /apps/my_project/server_start'
12
+
13
+ Honestly my wrapper also not very good. I would like to make API looks like the ['rush'][rush] gem (made by Adam Wiggins)
14
+ but it requires a lots of time, maybe I'll do it later.
15
+ So, for now it's just a small wrapper to do ssh/io operations not so painfull.
16
+
17
+ ## TODO
18
+
2
19
  - introduce Entity/Dir/File (the same as in Rush)
3
20
  - allow to move files between any Boxes, not only between local and remote.
4
- - add support for moving dirs.
21
+ - add support for moving dirs.
22
+
23
+
24
+ [rush]: http://github.com/adamwiggins/rush
data/spec/box_spec.rb CHANGED
@@ -98,8 +98,12 @@ describe Rsh::Box do
98
98
  end
99
99
 
100
100
  describe "shell" do
101
- it 'exec' do
102
- @box.bash("echo 'ok'").should == ["ok\n", ""]
101
+ it 'bash' do
102
+ @box.bash("echo 'ok'").should == "ok\n"
103
103
  end
104
+
105
+ it "exec" do
106
+ @box.exec("echo 'ok'").should == [0, "ok\n", ""]
107
+ end
104
108
  end
105
109
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 1
9
- version: 0.0.1
8
+ - 2
9
+ version: 0.0.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Alexey Petrushin
@@ -79,6 +79,6 @@ rubyforge_project:
79
79
  rubygems_version: 1.3.7
80
80
  signing_key:
81
81
  specification_version: 3
82
- summary: ruby ssh and io
82
+ summary: Tiny wrapper over Net::SSH and Net::SFTP
83
83
  test_files: []
84
84