jossh 0.1.3 → 0.1.4
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 +4 -4
- data/README.md +8 -1
- data/lib/jossh/api.rb +4 -4
- data/lib/jossh/bin_handler.rb +3 -3
- data/lib/jossh/command_runner.rb +14 -7
- data/lib/jossh/templates/docopt.txt +8 -1
- data/lib/jossh/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d18b383a8d45121c2f64df1ac726857fb44096d
|
4
|
+
data.tar.gz: bebcc43c96495901ff70c46b906e7fbd51bdf177
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3a456a8f5468b9384b0087b03d25e2e3b660536df1d6a16e62e0c5fd2a72b5f9caf2aba8a5272f723b8e6a4de9e7cdb26031da3da0cd55065a313063921d043
|
7
|
+
data.tar.gz: b43df4b36e426cfd037902654d79c20388988484a1e1c922e4c9d7c25884277e9201b99bbd1b8b2a39aeb0d01014ad536a506c22ac1ef9821b0a08783fdf712a
|
data/README.md
CHANGED
@@ -44,7 +44,7 @@ commands or a local script over SSH.
|
|
44
44
|
Jossh
|
45
45
|
|
46
46
|
Usage:
|
47
|
-
jossh <host> <script>
|
47
|
+
jossh <host> <script> [-- <arguments>...]
|
48
48
|
jossh -m | --make-hostfile
|
49
49
|
jossh -l | --list
|
50
50
|
jossh -h | --help
|
@@ -62,6 +62,12 @@ commands or a local script over SSH.
|
|
62
62
|
- a filename
|
63
63
|
- one or more direct command
|
64
64
|
|
65
|
+
<arguments>...
|
66
|
+
When specifying a filename as the <script>, you may also pass additional
|
67
|
+
arguments to it.
|
68
|
+
Use $1 - $9 in your script file to work with these arguments.
|
69
|
+
Use $@ (or $*) to use the entire arguments string
|
70
|
+
|
65
71
|
Options:
|
66
72
|
-m --make-hostfile Generate a template ssh_hosts.yml
|
67
73
|
-l --list Show hosts in ./ssh_hosts.yml or ~/ssh_hosts.yml
|
@@ -72,6 +78,7 @@ commands or a local script over SSH.
|
|
72
78
|
jossh :production "git status"
|
73
79
|
jossh jack@server.com "cd ~ && ls -l"
|
74
80
|
jossh server.com deploy
|
81
|
+
jossh server.com rake -- db:migrate
|
75
82
|
|
76
83
|
|
77
84
|
## Library Usage
|
data/lib/jossh/api.rb
CHANGED
@@ -61,16 +61,16 @@ module Jossh
|
|
61
61
|
#
|
62
62
|
# ssh_script :localhost, "deploy"
|
63
63
|
#
|
64
|
-
def ssh_script(hostspec, script, callback: nil)
|
65
|
-
CommandRunner.instance.ssh_script hostspec, script, callback: callback
|
64
|
+
def ssh_script(hostspec, script, arguments: nil, callback: nil)
|
65
|
+
CommandRunner.instance.ssh_script hostspec, script, arguments: arguments, callback: callback
|
66
66
|
end
|
67
67
|
|
68
68
|
# Same as +ssh_script+, only this will print a pretty output.
|
69
69
|
#
|
70
70
|
# This method accepts only +hostspec+ and +script+ (no +callback+).
|
71
71
|
#
|
72
|
-
def ssh_script!(hostspec, script)
|
73
|
-
CommandRunner.instance.ssh_script! hostspec, script
|
72
|
+
def ssh_script!(hostspec, script, arguments: nil)
|
73
|
+
CommandRunner.instance.ssh_script! hostspec, script, arguments: arguments
|
74
74
|
end
|
75
75
|
|
76
76
|
# Set the name of the hostfile
|
data/lib/jossh/bin_handler.rb
CHANGED
@@ -23,15 +23,15 @@ module Jossh
|
|
23
23
|
return show_version if args['--version']
|
24
24
|
return make_hostfile if args['--make-hostfile']
|
25
25
|
return list_hosts if args['--list']
|
26
|
-
handle_script args['<host>'].dup, args['<script>']
|
26
|
+
handle_script args['<host>'].dup, args['<script>'], arguments: args['<arguments>']
|
27
27
|
end
|
28
28
|
|
29
|
-
def handle_script(host, script)
|
29
|
+
def handle_script(host, script, arguments: nil)
|
30
30
|
host = standardize_host host
|
31
31
|
|
32
32
|
begin
|
33
33
|
if File.exist? script
|
34
|
-
ssh_script! host, script
|
34
|
+
ssh_script! host, script, arguments: arguments
|
35
35
|
else
|
36
36
|
ssh host, script
|
37
37
|
end
|
data/lib/jossh/command_runner.rb
CHANGED
@@ -30,12 +30,12 @@ module Jossh
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def ssh_script!(hostspec, script)
|
34
|
-
ssh! hostspec, load_script(script)
|
33
|
+
def ssh_script!(hostspec, script, arguments: nil)
|
34
|
+
ssh! hostspec, load_script(script, arguments)
|
35
35
|
end
|
36
36
|
|
37
|
-
def ssh_script(hostspec, script, callback: nil)
|
38
|
-
ssh hostspec, load_script(script), callback: callback
|
37
|
+
def ssh_script(hostspec, script, arguments: nil, callback: nil)
|
38
|
+
ssh hostspec, load_script(script, arguments), callback: callback
|
39
39
|
end
|
40
40
|
|
41
41
|
def ssh_hostfile(file)
|
@@ -91,11 +91,18 @@ module Jossh
|
|
91
91
|
"#{Dir.home}/#{hostfile}"
|
92
92
|
end
|
93
93
|
|
94
|
-
def load_script(script)
|
95
|
-
File.read
|
94
|
+
def load_script(script, arguments=nil)
|
95
|
+
evaluate_args File.read(script), arguments
|
96
|
+
end
|
97
|
+
|
98
|
+
def evaluate_args(string, arguments)
|
99
|
+
return string unless arguments.is_a? Array and !arguments.empty?
|
100
|
+
all_arguments = arguments.map{|a| a =~ /\s/ ? "\"#{a}\"" : a}.join ' '
|
101
|
+
string.gsub!(/\$(\d)/) { arguments[$1.to_i - 1] }
|
102
|
+
string.gsub!(/\$[*|@]/, all_arguments)
|
103
|
+
string
|
96
104
|
end
|
97
105
|
|
98
106
|
end
|
99
107
|
|
100
108
|
end
|
101
|
-
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Jossh
|
2
2
|
|
3
3
|
Usage:
|
4
|
-
jossh <host> <script>
|
4
|
+
jossh <host> <script> [-- <arguments>...]
|
5
5
|
jossh -m | --make-hostfile
|
6
6
|
jossh -l | --list
|
7
7
|
jossh -h | --help
|
@@ -19,6 +19,12 @@ Arguments:
|
|
19
19
|
- a filename
|
20
20
|
- one or more direct command
|
21
21
|
|
22
|
+
<arguments>...
|
23
|
+
When specifying a filename as the <script>, you may also pass additional
|
24
|
+
arguments to it.
|
25
|
+
Use $1 - $9 in your script file to work with these arguments.
|
26
|
+
Use $@ (or $*) to use the entire arguments string
|
27
|
+
|
22
28
|
Options:
|
23
29
|
-m --make-hostfile Generate a template ssh_hosts.yml
|
24
30
|
-l --list Show hosts in ./ssh_hosts.yml or ~/ssh_hosts.yml
|
@@ -29,4 +35,5 @@ Examples:
|
|
29
35
|
jossh :production "git status"
|
30
36
|
jossh jack@server.com "cd ~ && ls -l"
|
31
37
|
jossh server.com deploy
|
38
|
+
jossh server.com rake -- db:migrate
|
32
39
|
|
data/lib/jossh/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jossh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danny Ben Shitrit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colsole
|