pipe2me-client 0.2.15 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/bin/pipe2me +0 -2
- data/lib/pipe2me/tunnel/commands.rb +13 -31
- data/lib/pipe2me/version.rb +2 -2
- metadata +4 -22
- data/lib/pipe2me/cli-foreman.rb +0 -34
- data/lib/pipe2me/cli-monit.rb +0 -66
- data/test/foreman-test.sh +0 -11
- data/test/monitrc-test.sh +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f325ba9aa41bbe17611895ce65eff4279fe21fa
|
4
|
+
data.tar.gz: 330125913e082e80df6e67fde935b41d810b738f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d517e7c6df0d6f76e430d342adfb1931f53fbf585b4b86087a7bee9b9575972180337849813c7d08ca84cdd44e2e17a91ac1a16ab7ba5017022faa7c3467b552
|
7
|
+
data.tar.gz: 24b3a761dee28119080f12d6aec46a5a05c52a58d5809cf710bb075f1f74eeb89ac93f6bb50d3aedd3e561b17beb47ca52cad82868cfe881f7d4d2b8289abe00
|
data/README.md
CHANGED
@@ -40,7 +40,7 @@ pretty-ivory-horse.test.pipe2.me
|
|
40
40
|
PIPE2ME_URLS_0=http://pretty-ivory-horse.test.pipe2.me:10003
|
41
41
|
PIPE2ME_URLS_1=https://pretty-ivory-horse.test.pipe2.me:10004
|
42
42
|
|
43
|
-
# Start the tunnels
|
43
|
+
# Start the tunnels
|
44
44
|
> <b>pipe2me start</b>
|
45
45
|
</pre>
|
46
46
|
|
@@ -107,4 +107,4 @@ under the terms of the MIT License (MIT), see COPYING.MIT for details.
|
|
107
107
|
The subdirectory lib/vendor contains third-party code, which is subject to its own copyrights.
|
108
108
|
Please see the respective source files for copyright information.
|
109
109
|
|
110
|
-
(c) The kinko team, 2014
|
110
|
+
(c) The kinko.me team, 2014
|
data/bin/pipe2me
CHANGED
@@ -15,36 +15,25 @@ module Pipe2me::Tunnel::Commands
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
public
|
19
|
-
|
20
18
|
# return an arry [ [name, command ], [name, command ], .. ]
|
21
|
-
def
|
19
|
+
def tunnel_command
|
22
20
|
tunnel_uri = URI.parse config.tunnel
|
23
21
|
|
24
|
-
tunnels.map do |protocol, remote_port, local_port|
|
25
|
-
|
26
|
-
|
27
|
-
end.compact
|
28
|
-
end
|
29
|
-
|
30
|
-
# def mapping_commands
|
31
|
-
# natpmpc = File.expand_path "#{File.dirname(__FILE__)}/../bin/natpmpc"
|
32
|
-
# mappings = tunnels.map do |_, remote_port, local_port|
|
33
|
-
# "tcp:#{remote_port}:#{local_port}"
|
34
|
-
# end
|
35
|
-
# [ [ "natpmpc", "#{natpmpc} #{mappings.join(" ")} && sleep 10000" ] ]
|
36
|
-
# end
|
22
|
+
port_mappings = tunnels.map do |protocol, remote_port, local_port|
|
23
|
+
[ remote_port, local_port ]
|
24
|
+
end
|
37
25
|
|
38
|
-
|
39
|
-
|
40
|
-
next unless cmd = echo_server_command(protocol, local_port)
|
41
|
-
[ "echo_#{local_port}", cmd ]
|
42
|
-
end.compact
|
26
|
+
cmd = port_tunnel_command(tunnel_uri, port_mappings)
|
27
|
+
[ "tunnel", cmd ]
|
43
28
|
end
|
44
29
|
|
45
30
|
private
|
46
31
|
|
47
|
-
def port_tunnel_command(tunnel_uri,
|
32
|
+
def port_tunnel_command(tunnel_uri, port_mappings)
|
33
|
+
port_mappings = port_mappings.map do |remote_port, local_port|
|
34
|
+
"-R 0.0.0.0:#{remote_port}:localhost:#{local_port}"
|
35
|
+
end.join(" ")
|
36
|
+
|
48
37
|
cmd = <<-SHELL
|
49
38
|
env AUTOSSH_GATETIME=0 # comments work here..
|
50
39
|
#{Which::AUTOSSH}
|
@@ -52,23 +41,16 @@ module Pipe2me::Tunnel::Commands
|
|
52
41
|
-F #{T::SSH_CONFIG}
|
53
42
|
#{tunnel_uri.user}@#{tunnel_uri.host}
|
54
43
|
-p #{tunnel_uri.port}
|
55
|
-
|
44
|
+
#{port_mappings}
|
56
45
|
-i #{T::SSH_PRIVKEY}
|
57
46
|
-o StrictHostKeyChecking=no
|
58
47
|
-o UserKnownHostsFile=pipe2me.known_hosts
|
59
48
|
-o PasswordAuthentication=no
|
49
|
+
-o ExitOnForwardFailure=yes
|
60
50
|
-N
|
61
51
|
SHELL
|
62
52
|
|
63
53
|
# remove comments and newlines from commands
|
64
54
|
cmd.gsub(/( *#.*|\s+)/, " ").gsub(/(^ )|( $)/, "")
|
65
55
|
end
|
66
|
-
|
67
|
-
def echo_server_command(protocol, port)
|
68
|
-
binary = File.dirname(__FILE__) + "/echo/#{protocol}"
|
69
|
-
return unless File.executable?(binary)
|
70
|
-
|
71
|
-
UI.info "Starting #{protocol} echo server on port #{port}"
|
72
|
-
"env PORT=#{port} #{binary}"
|
73
|
-
end
|
74
56
|
end
|
data/lib/pipe2me/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pipe2me-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- radiospiel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: foreman
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: simple-ui
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,7 +52,7 @@ dependencies:
|
|
66
52
|
- - ">="
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '0'
|
69
|
-
description: pipe2me command line client V0.
|
55
|
+
description: pipe2me command line client V0.3.0; (c) The kinko.me team, 2013, 2014.
|
70
56
|
email: contact@kinko.me
|
71
57
|
executables:
|
72
58
|
- pipe2me
|
@@ -78,8 +64,6 @@ files:
|
|
78
64
|
- bin/pipe2med
|
79
65
|
- lib/pipe2me.rb
|
80
66
|
- lib/pipe2me/bin/natpmpc
|
81
|
-
- lib/pipe2me/cli-foreman.rb
|
82
|
-
- lib/pipe2me/cli-monit.rb
|
83
67
|
- lib/pipe2me/cli.rb
|
84
68
|
- lib/pipe2me/config.rb
|
85
69
|
- lib/pipe2me/ext/file_ext.rb
|
@@ -100,8 +84,6 @@ files:
|
|
100
84
|
- rakelib/test.rake
|
101
85
|
- test/auth-token-test.sh
|
102
86
|
- test/env-test.sh
|
103
|
-
- test/foreman-test.sh
|
104
|
-
- test/monitrc-test.sh
|
105
87
|
- test/redirection-test.sh
|
106
88
|
- test/setup-test.sh
|
107
89
|
- test/sshkey-test.sh
|
@@ -133,5 +115,5 @@ rubyforge_project:
|
|
133
115
|
rubygems_version: 2.2.2
|
134
116
|
signing_key:
|
135
117
|
specification_version: 4
|
136
|
-
summary: pipe2me command line client V0.
|
118
|
+
summary: pipe2me command line client V0.3.0; (c) The kinko.me team, 2013, 2014.
|
137
119
|
test_files: []
|
data/lib/pipe2me/cli-foreman.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
class Pipe2me::CLI < Thor
|
2
|
-
desc "start", "Start tunnels"
|
3
|
-
option :echo, :type => :boolean, :banner => "Also run echo servers"
|
4
|
-
def start
|
5
|
-
handle_global_options
|
6
|
-
|
7
|
-
procfile = options[:echo] ? "pipe2me.procfile.echo" : "pipe2me.procfile"
|
8
|
-
|
9
|
-
File.open procfile, "w" do |io|
|
10
|
-
Pipe2me::Tunnel.tunnel_commands.each do |name, cmd|
|
11
|
-
io.write "#{name}: #{cmd}\n"
|
12
|
-
end
|
13
|
-
|
14
|
-
# Pipe2me::Tunnel.mapping_commands.each do |name, cmd|
|
15
|
-
# io.write "#{name}: #{cmd}\n"
|
16
|
-
# end
|
17
|
-
|
18
|
-
next unless options[:echo]
|
19
|
-
|
20
|
-
Pipe2me::Tunnel.echo_commands.each do |name, cmd|
|
21
|
-
io.write "#{name}: #{cmd}\n"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
config = Pipe2me::Tunnel.send(:config)
|
26
|
-
fqdn = config.fqdn
|
27
|
-
|
28
|
-
Pipe2me::Tunnel.tunnels.each do |protocol, remote_port, local_port|
|
29
|
-
UI.success "Tunneling #{protocol}://localhost:#{local_port} <=> #{protocol}://#{fqdn}:#{remote_port}"
|
30
|
-
end
|
31
|
-
|
32
|
-
Kernel.exec "foreman start -f #{procfile}"
|
33
|
-
end
|
34
|
-
end
|
data/lib/pipe2me/cli-monit.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
class Pipe2me::CLI < Thor
|
2
|
-
desc "monit", "Create monitrc file and run monit"
|
3
|
-
option :port, :default => 5555, :banner => "control port"
|
4
|
-
option :echo, :type => :boolean, :banner => "Also run echo servers"
|
5
|
-
def monit(*args)
|
6
|
-
handle_global_options
|
7
|
-
|
8
|
-
monitrc_file = create_monitrc
|
9
|
-
|
10
|
-
UI.warn "Running: monit -c #{monitrc_file} #{args.join(" ")}"
|
11
|
-
Kernel.exec "monit", "-c", monitrc_file, *args
|
12
|
-
end
|
13
|
-
|
14
|
-
desc "monitrc", "Create monitrc file"
|
15
|
-
option :port, :default => 5555, :banner => "control port"
|
16
|
-
option :echo, :type => :boolean, :banner => "Also run echo servers"
|
17
|
-
def monitrc
|
18
|
-
handle_global_options
|
19
|
-
|
20
|
-
monitrc_file = create_monitrc
|
21
|
-
Kernel.exec "monit", "-c", monitrc_file, "-t"
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def create_monitrc
|
27
|
-
path = options[:echo] ? "pipe2me.monitrc.echo" : "pipe2me.monitrc"
|
28
|
-
|
29
|
-
# The daemon binary
|
30
|
-
daemon = "#{Which::DAEMON} -D #{File.expand_path(Dir.getwd)}"
|
31
|
-
|
32
|
-
port = options[:port]
|
33
|
-
|
34
|
-
logfile = File.expand_path "pipe2me.monit.log"
|
35
|
-
piddir = File.expand_path "pipe2me.monit.pids"
|
36
|
-
FileUtils.mkdir_p piddir
|
37
|
-
|
38
|
-
commands = Pipe2me::Tunnel.tunnel_commands
|
39
|
-
# commands += Pipe2me::Tunnel.mapping_commands
|
40
|
-
commands += Pipe2me::Tunnel.echo_commands if options[:echo]
|
41
|
-
|
42
|
-
File.open path, "w", 0600 do |io|
|
43
|
-
require "erb"
|
44
|
-
|
45
|
-
erb = ERB.new MONITRC_ERB
|
46
|
-
io.write erb.result(self.send(:binding))
|
47
|
-
end
|
48
|
-
|
49
|
-
UI.success "Created #{path}"
|
50
|
-
|
51
|
-
path
|
52
|
-
end
|
53
|
-
|
54
|
-
MONITRC_ERB = %q{
|
55
|
-
set daemon 10
|
56
|
-
set httpd port <%= port %> and use address localhost allow localhost
|
57
|
-
|
58
|
-
<% commands.each do |name, cmd| %>
|
59
|
-
check process <%= name %> with pidfile <%= piddir %>/<%= name %>.pid
|
60
|
-
<% daemon = "#{daemon} -N --name #{name} --pidfiles #{piddir} --output #{logfile}" %>
|
61
|
-
start program = "<%= daemon %> -- <%= cmd %>" with timeout 60 seconds
|
62
|
-
stop program = "<%= daemon %> --stop"
|
63
|
-
<% end %>
|
64
|
-
}
|
65
|
-
|
66
|
-
end
|
data/test/foreman-test.sh
DELETED
data/test/monitrc-test.sh
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
#!/usr/bin/env roundup
|
2
|
-
describe "setup and starts tunnels in foreman mode"
|
3
|
-
|
4
|
-
. $(dirname $1)/testhelper.inc
|
5
|
-
|
6
|
-
it_works_with_monitrc() {
|
7
|
-
later It setup and starts tunnels in monitrc mode
|
8
|
-
# i.e. pipe2me setup
|
9
|
-
# pipe2me monitrc
|
10
|
-
# pipe2me monit start all
|
11
|
-
# ...
|
12
|
-
}
|
13
|
-
|
14
|
-
it_creates_a_monitrc_file() {
|
15
|
-
! [ -e pipe2me.monitrc ]
|
16
|
-
fqdn=$($pipe2me setup --server $pipe2me_server --token $pipe2me_token)
|
17
|
-
|
18
|
-
$pipe2me monitrc
|
19
|
-
[ -e pipe2me.monitrc ]
|
20
|
-
|
21
|
-
# The file is 0600
|
22
|
-
ls -l pipe2me.monitrc | grep -e "-rw-------"
|
23
|
-
}
|