homeseed 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/bin/homeseed +11 -0
- data/homeseed.gemspec +2 -2
- data/lib/homeseed/version.rb +1 -1
- data/lib/homeseed.rb +24 -2
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MjE5MjNlYzQzOWQyNzM1NmQ5MmM5MjhhMDMyYTM0MTRhZTE3Y2M1NA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NGE2YjFjY2M2NGRmMjg1YzVmOTdkZTQ1ZGRkNjM1MmMxYmIzYTZiOA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZTVmNGM5YzZhNjFiMmZjODZhYTgwYzc3YjYxM2FjMTRkM2EwM2FiODUwMTc1
|
10
|
+
NjUzMDA4NDQxMjM2NWQ0NzhhOGJjMmFlOTIyOTk4NGVkZTc0OWYxYjAzYzI1
|
11
|
+
MGNjOWRhNTk2NGM1OGIwYjUyMjU3NTA4ZjQzZWY1NTFhMzZmY2Q=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
N2E1ZjE2OWJjNjliNWU2ODYyOTk3NTRiNmFkZjllMDlhZGJhMjcwODhlZmQ1
|
14
|
+
Y2M3NzcwMzQ1MTY2OTg1ZWZlMDJmOTg1NGE4OTQ0YjcyZDBjZmY4YmFjNTY5
|
15
|
+
ZDVlMTY3YTU5ODI2OTlkMTI0MDk3MzFkM2VhYmVjZjZhOTczNDc=
|
data/bin/homeseed
CHANGED
@@ -39,6 +39,17 @@ module Homeseed
|
|
39
39
|
connection = Homeseed::Connection.new options.merge(files: files.join(','))
|
40
40
|
connection.ssh_exec
|
41
41
|
end
|
42
|
+
|
43
|
+
desc 'upload [-f <upload_files>] [-p <remote_path>] [-u <user>]',
|
44
|
+
'scp uploads file(s) to remote servers'
|
45
|
+
method_option :servers, required: true, aliases: '-s', desc: 'ssh hostname(s); csv if multiple'
|
46
|
+
method_option :upload_files, aliases: '-f', desc: 'file(s) to upload to server(s)'
|
47
|
+
method_option :remote_path, aliases: '-p', desc: 'path to upload to server(s)'
|
48
|
+
method_option :user, aliases: '-u', desc: 'ssh username', default: ENV['USER']
|
49
|
+
def upload
|
50
|
+
connection = Homeseed::Connection.new options
|
51
|
+
connection.scp_upload
|
52
|
+
end
|
42
53
|
end
|
43
54
|
HomeseedCliApp.start
|
44
55
|
end
|
data/homeseed.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake", '~> 10.3'
|
23
|
-
spec.add_dependency 'net-ssh', '~> 2.
|
24
|
-
spec.add_dependency '
|
23
|
+
spec.add_dependency 'net-ssh', '~> 2.6'
|
24
|
+
spec.add_dependency 'net-scp', '~> 1.1'
|
25
25
|
spec.add_dependency 'thor', '~> 0.19'
|
26
26
|
end
|
data/lib/homeseed/version.rb
CHANGED
data/lib/homeseed.rb
CHANGED
@@ -1,12 +1,18 @@
|
|
1
1
|
require "homeseed/version"
|
2
2
|
require 'logger'
|
3
3
|
require 'net/ssh'
|
4
|
+
require 'net/scp'
|
4
5
|
require 'yaml'
|
5
6
|
|
6
7
|
module Homeseed
|
7
8
|
class Connection
|
8
9
|
def self.logger
|
9
10
|
@logger ||= Logger.new(STDOUT)
|
11
|
+
original_formatter = Logger::Formatter.new
|
12
|
+
@logger.formatter = proc { |severity, datetime, progname, msg|
|
13
|
+
original_formatter.call(severity, datetime, progname, msg.dump)
|
14
|
+
}
|
15
|
+
@logger
|
10
16
|
end
|
11
17
|
|
12
18
|
def logger
|
@@ -14,14 +20,14 @@ module Homeseed
|
|
14
20
|
end
|
15
21
|
|
16
22
|
def initialize(params={})
|
17
|
-
raise
|
23
|
+
raise 'servers and/or user not specified' unless params[:servers] and params[:user]
|
18
24
|
@servers = params[:servers].split(',')
|
19
25
|
@user = params[:user]
|
20
26
|
@password = params[:password] || ''
|
21
27
|
|
22
28
|
if params[:command]
|
23
29
|
@flat_commands = params[:command]
|
24
|
-
|
30
|
+
elsif params[:files]
|
25
31
|
@files = params[:files].split(',')
|
26
32
|
@flat_commands = ''
|
27
33
|
@files.each do |file|
|
@@ -30,6 +36,11 @@ module Homeseed
|
|
30
36
|
self.process_hash(commands, '', yml_commands)
|
31
37
|
@flat_commands += commands.join('; ') + ';'
|
32
38
|
end
|
39
|
+
elsif params[:upload_files]
|
40
|
+
@remote_path = params[:remote_path] || '/tmp/'
|
41
|
+
@upload_files = params[:upload_files].split(',')
|
42
|
+
else
|
43
|
+
raise 'ERROR command, files or upload_files not specified'
|
33
44
|
end
|
34
45
|
end
|
35
46
|
|
@@ -80,5 +91,16 @@ module Homeseed
|
|
80
91
|
[server, { exit_status: exit_status }]
|
81
92
|
end]
|
82
93
|
end
|
94
|
+
|
95
|
+
def scp_upload
|
96
|
+
@servers.each do |server|
|
97
|
+
@upload_files.each do |upload_file|
|
98
|
+
logger.info "scp #{upload_file} #{@user}@#{server}:#{@remote_path}"
|
99
|
+
Net::SCP.start(server, @user) do |scp|
|
100
|
+
scp.upload!(upload_file, @remote_path)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
83
105
|
end
|
84
106
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: homeseed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rbuchss
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,28 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '2.
|
47
|
+
version: '2.6'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '2.
|
54
|
+
version: '2.6'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: net-scp
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
61
|
+
version: '1.1'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
68
|
+
version: '1.1'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: thor
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|