spectre-ftp 1.0.0 → 1.1.1
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/lib/spectre/ftp.rb +39 -15
- metadata +33 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a902a8c177730c407b7828f6b60d6bf592402d2b7b5b6103b2c13fdb1ca77ce
|
4
|
+
data.tar.gz: a7612890b94aafb60c3723e0b9515ea0f8859d62578f0ce1cee30767517d41fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2680bc0403cf0eb0e57a039bd42103a72de3b1d8ea303f1a39a00100ff978932c7c6c317fe99333a2c858f7325b90a7b0bf14b56923aac8accd8c007aa91be08
|
7
|
+
data.tar.gz: 739171c88d9513517b143f4d106b2d352457d914a373653093494d93ac89e8aa817badf8fc3dbdaa8b37ab5bde3d8be2d8559285409cef5949c24374da1c6f05
|
data/lib/spectre/ftp.rb
CHANGED
@@ -19,8 +19,17 @@ module Spectre
|
|
19
19
|
@__opts = opts
|
20
20
|
end
|
21
21
|
|
22
|
+
def username user
|
23
|
+
@__username = user
|
24
|
+
end
|
25
|
+
|
26
|
+
def password pass
|
27
|
+
@__password = pass
|
28
|
+
end
|
29
|
+
|
22
30
|
def connect!
|
23
31
|
return unless @__session == nil or @__session.closed?
|
32
|
+
|
24
33
|
@__logger.info "Connecting to '#{@__host}' with user '#{@__username}'"
|
25
34
|
@__session = Net::FTP.new(@__host, @__opts)
|
26
35
|
@__session.login @__username, @__password
|
@@ -28,6 +37,7 @@ module Spectre
|
|
28
37
|
|
29
38
|
def close
|
30
39
|
return unless @__session and not @__session.closed?
|
40
|
+
|
31
41
|
@__session.close
|
32
42
|
end
|
33
43
|
|
@@ -42,25 +52,24 @@ module Spectre
|
|
42
52
|
|
43
53
|
def download remotefile, to: File.basename(remotefile)
|
44
54
|
connect!
|
45
|
-
@__logger.info
|
55
|
+
@__logger.info("Downloading '#{@__username}@#{@__host}:#{File.join @__session.pwd, remotefile}' to '#{File.expand_path to}'")
|
46
56
|
@__session.getbinaryfile(remotefile, to)
|
47
57
|
end
|
48
58
|
|
49
59
|
def upload localfile, to: File.basename(localfile)
|
50
60
|
connect!
|
51
|
-
@__logger.info
|
61
|
+
@__logger.info("Uploading '#{File.expand_path localfile}' to '#{@__username}@#{@__host}:#{File.join @__session.pwd, to}'")
|
52
62
|
@__session.putbinaryfile(localfile, to)
|
53
63
|
end
|
54
64
|
|
55
65
|
def list
|
56
66
|
connect!
|
57
67
|
file_list = @__session.list
|
58
|
-
@__logger.info
|
68
|
+
@__logger.info("Listing files in #{@__session.pwd}\n#{file_list}")
|
59
69
|
file_list
|
60
70
|
end
|
61
71
|
end
|
62
72
|
|
63
|
-
|
64
73
|
class SFTPConnection < DslClass
|
65
74
|
def initialize host, username, opts, logger
|
66
75
|
opts[:non_interactive] = true
|
@@ -72,8 +81,27 @@ module Spectre
|
|
72
81
|
@__opts = opts
|
73
82
|
end
|
74
83
|
|
84
|
+
def username user
|
85
|
+
@__username = user
|
86
|
+
end
|
87
|
+
|
88
|
+
def password pass
|
89
|
+
@__opts[:password] = pass
|
90
|
+
@__opts[:auth_methods].push 'password' unless @__opts[:auth_methods].include? 'password'
|
91
|
+
end
|
92
|
+
|
93
|
+
def private_key file_path
|
94
|
+
@__opts[:keys] = [file_path]
|
95
|
+
@__opts[:auth_methods].push 'publickey' unless @__opts[:auth_methods].include? 'publickey'
|
96
|
+
end
|
97
|
+
|
98
|
+
def passphrase phrase
|
99
|
+
@__opts[:passphrase] = phrase
|
100
|
+
end
|
101
|
+
|
75
102
|
def connect!
|
76
103
|
return unless @__session == nil or @__session.closed?
|
104
|
+
|
77
105
|
@__logger.info "Connecting to '#{@__host}' with user '#{@__username}'"
|
78
106
|
@__session = Net::SFTP.start(@__host, @__username, @__opts)
|
79
107
|
@__session.connect!
|
@@ -81,6 +109,7 @@ module Spectre
|
|
81
109
|
|
82
110
|
def close
|
83
111
|
return unless @__session and not @__session.closed?
|
112
|
+
|
84
113
|
# @__session.close!
|
85
114
|
end
|
86
115
|
|
@@ -94,14 +123,14 @@ module Spectre
|
|
94
123
|
end
|
95
124
|
|
96
125
|
def download remotefile, to: File.basename(remotefile)
|
97
|
-
@__logger.info "Downloading '#{@__username}@#{@__host}:#{remotefile}' to '#{File.expand_path to}'"
|
98
126
|
connect!
|
127
|
+
@__logger.info "Downloading '#{@__username}@#{@__host}:#{remotefile}' to '#{File.expand_path to}'"
|
99
128
|
@__session.download!(remotefile, to)
|
100
129
|
end
|
101
130
|
|
102
131
|
def upload localfile, to: File.basename(localfile)
|
103
|
-
@__logger.info "Uploading '#{File.expand_path localfile}' to '#{@__username}@#{@__host}:#{to}'"
|
104
132
|
connect!
|
133
|
+
@__logger.info "Uploading '#{File.expand_path localfile}' to '#{@__username}@#{@__host}:#{to}'"
|
105
134
|
@__session.upload!(localfile, to)
|
106
135
|
end
|
107
136
|
|
@@ -114,10 +143,10 @@ module Spectre
|
|
114
143
|
|
115
144
|
def exists path
|
116
145
|
begin
|
117
|
-
|
118
|
-
|
146
|
+
@__session.stat! path
|
119
147
|
rescue Net::SFTP::StatusException => e
|
120
148
|
return false if e.description == 'no such file'
|
149
|
+
|
121
150
|
raise e
|
122
151
|
end
|
123
152
|
|
@@ -128,7 +157,6 @@ module Spectre
|
|
128
157
|
|
129
158
|
class << self
|
130
159
|
def ftp name, config={}, &block
|
131
|
-
raise "FTP connection '#{name}' not configured" unless @@cfg.key?(name) or config.count > 0
|
132
160
|
cfg = @@cfg[name] || {}
|
133
161
|
|
134
162
|
host = config[:host] || cfg['host'] || name
|
@@ -139,8 +167,6 @@ module Spectre
|
|
139
167
|
opts[:ssl] = config[:ssl]
|
140
168
|
opts[:port] = config[:port] || cfg['port'] || 21
|
141
169
|
|
142
|
-
@@logger.info "Connecting to #{host} with user #{username}"
|
143
|
-
|
144
170
|
ftp_conn = FTPConnection.new(host, username, password, opts, @@logger)
|
145
171
|
|
146
172
|
begin
|
@@ -151,8 +177,6 @@ module Spectre
|
|
151
177
|
end
|
152
178
|
|
153
179
|
def sftp name, config={}, &block
|
154
|
-
raise "FTP connection '#{name}' not configured" unless @@cfg.key?(name) or config.count > 0
|
155
|
-
|
156
180
|
cfg = @@cfg[name] || {}
|
157
181
|
|
158
182
|
host = config[:host] || cfg['host'] || name
|
@@ -180,7 +204,7 @@ module Spectre
|
|
180
204
|
end
|
181
205
|
|
182
206
|
Spectre.register do |config|
|
183
|
-
@@logger = ::
|
207
|
+
@@logger = Spectre::Logging::ModuleLogger.new(config, 'spectre/ftp')
|
184
208
|
|
185
209
|
if config.key? 'ftp'
|
186
210
|
|
@@ -192,4 +216,4 @@ module Spectre
|
|
192
216
|
|
193
217
|
Spectre.delegate :ftp, :sftp, to: self
|
194
218
|
end
|
195
|
-
end
|
219
|
+
end
|
metadata
CHANGED
@@ -1,60 +1,73 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spectre-ftp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Neubauer
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: net-ftp
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: net-sftp
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
|
-
- - "
|
31
|
+
- - ">="
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
33
|
+
version: '0'
|
20
34
|
type: :runtime
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
|
-
- - "
|
38
|
+
- - ">="
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: spectre-core
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - ">="
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
47
|
+
version: 1.14.0
|
34
48
|
type: :runtime
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - ">="
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
41
|
-
description: Adds FTP
|
54
|
+
version: 1.14.0
|
55
|
+
description: Adds FTP functionality to the spectre framework
|
42
56
|
email:
|
43
|
-
-
|
57
|
+
- christian.neubauer@ionos.com
|
44
58
|
executables: []
|
45
59
|
extensions: []
|
46
60
|
extra_rdoc_files: []
|
47
61
|
files:
|
48
62
|
- lib/spectre/ftp.rb
|
49
|
-
homepage: https://
|
63
|
+
homepage: https://github.com/ionos-spectre/spectre-ftp
|
50
64
|
licenses:
|
51
65
|
- MIT
|
52
66
|
metadata:
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
post_install_message:
|
67
|
+
homepage_uri: https://github.com/ionos-spectre/spectre-ftp
|
68
|
+
source_code_uri: https://github.com/ionos-spectre/spectre-ftp
|
69
|
+
changelog_uri: https://github.com/ionos-spectre/spectre-ftp/src/master/CHANGELOG.md
|
70
|
+
post_install_message:
|
58
71
|
rdoc_options: []
|
59
72
|
require_paths:
|
60
73
|
- lib
|
@@ -62,15 +75,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
62
75
|
requirements:
|
63
76
|
- - ">="
|
64
77
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
78
|
+
version: 3.0.0
|
66
79
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
80
|
requirements:
|
68
81
|
- - ">="
|
69
82
|
- !ruby/object:Gem::Version
|
70
83
|
version: '0'
|
71
84
|
requirements: []
|
72
|
-
rubygems_version: 3.
|
73
|
-
signing_key:
|
85
|
+
rubygems_version: 3.4.19
|
86
|
+
signing_key:
|
74
87
|
specification_version: 4
|
75
88
|
summary: FTP module for spectre
|
76
89
|
test_files: []
|