vagrant-scp-sync 0.5.8 → 0.5.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65c818898c0656b74c7602b97bc8e9a65954254cd08a7d2dbdf740e177c86235
4
- data.tar.gz: 62af0730c515cb15f50027d8fad094cf46ec973187749afb8c8d8f53edf439e5
3
+ metadata.gz: 48bd4bcdcb8103f2ca11386ff215a56fc98ef26d74b5d479736d0610480211a3
4
+ data.tar.gz: 1246659b2e00ada41282f939a5924038b3abe341452d09470d3a3dc3c2efb7e2
5
5
  SHA512:
6
- metadata.gz: d1edeee758eacd0863690066cee48f67c7ad88d8f940c074c8f5b3e3ec87c19d3588b60d701ffdcc867f657c1e84414a49b56ecaa9a45df1879ea16afc5ee448
7
- data.tar.gz: 667cb7d1e6abe906520039ebb4c9994a60ec9cfeffa76e60c335de4bad2aa0870e6f03ded3b535ccd4b001cee32868015b8ac5664ff8f7a6a83b57df2c6e9662
6
+ metadata.gz: e4fe45b3997bcbbe1138f0bb572dd6fe4dafa51adacfc78f62622229286f75e1af01a032ab7d981128e5539bcbcb46764c4d16332e313611d13cc237cd9440bd
7
+ data.tar.gz: ced2849fb7a6f595cac61fe13e88137b09a62ded22d7f252af1303ed71c51262600ba5d1f4e31538012f4049ec8733da8de4ae48428f295f7d2c7df38b304211
@@ -0,0 +1,3 @@
1
+ {
2
+ "ansible.python.interpreterPath": "/bin/python3"
3
+ }
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.9](https://github.com/STARTcloud/vagrant-scp-sync/compare/v0.5.8...v0.5.9) (2024-11-19)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * add synced folders ([69bc1c6](https://github.com/STARTcloud/vagrant-scp-sync/commit/69bc1c683eddc802746f9e308cc951ad4baaee01))
9
+ * linting ([e8739c4](https://github.com/STARTcloud/vagrant-scp-sync/commit/e8739c453433e682d8cefe86b3031a9754f3dec8))
10
+ * linting ([2c92774](https://github.com/STARTcloud/vagrant-scp-sync/commit/2c92774f575ad1279a46cc3926c9b5bbf839410a))
11
+ * linting ([87edab0](https://github.com/STARTcloud/vagrant-scp-sync/commit/87edab01efdfde25f05d35945bcd5e22c67dad0b))
12
+ * linting ([98380fc](https://github.com/STARTcloud/vagrant-scp-sync/commit/98380fcf1b8c234ef5a7e42ced475f3416905681))
13
+ * linting ([bc1c3d8](https://github.com/STARTcloud/vagrant-scp-sync/commit/bc1c3d87432320d77c7e47a023f99f63d98e63fa))
14
+ * linting ([4b62732](https://github.com/STARTcloud/vagrant-scp-sync/commit/4b62732083b4a7fe516a0c77dec6618bdadd2fa1))
15
+ * linting ([41bf13b](https://github.com/STARTcloud/vagrant-scp-sync/commit/41bf13b94d233997755bcf48e60e2e26ac8b9f37))
16
+ * linting ([dd1b58f](https://github.com/STARTcloud/vagrant-scp-sync/commit/dd1b58fd7bad93afa9164dcf46e6f3668ee546be))
17
+
3
18
  ## [0.5.8](https://github.com/STARTcloud/vagrant-scp-sync/compare/v0.5.7...v0.5.8) (2024-06-25)
4
19
 
5
20
 
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'vagrant/util/platform'
4
+ require 'vagrant/util/subprocess'
5
+
6
+ module VagrantPlugins
7
+ module ScpSync
8
+ # This will SCP the files
9
+ class ScpSyncHelper
10
+ def self.scp_single(machine, opts)
11
+ ssh_info = machine.ssh_info
12
+ raise Vagrant::Errors::SSHNotReady if ssh_info.nil?
13
+
14
+ source_files = opts[:guestpath]
15
+ target_files = opts[:hostpath]
16
+ target_files = File.expand_path(target_files, machine.env.root_path)
17
+ target_files = Vagrant::Util::Platform.fs_real_path(target_files).to_s
18
+ target_files = Vagrant::Util::Platform.cygwin_path(target_files) if Vagrant::Util::Platform.windows?
19
+ source_files += '/' unless source_files.end_with?('/')
20
+ target_files += '/' unless target_files.end_with?('/')
21
+ opts[:owner] ||= ssh_info[:username]
22
+ opts[:group] ||= ssh_info[:username]
23
+ username = ssh_info[:username]
24
+ host = ssh_info[:host]
25
+ proxy_command = if @ssh_info[:proxy_command]
26
+ "-o ProxyCommand='#{@ssh_info[:proxy_command]}' "
27
+ else
28
+ ''
29
+ end
30
+
31
+ if opts[:direction] == :upload || opts[:direction].nil?
32
+ source = "'#{source_files}'"
33
+ target = "#{username}@#{host}:'#{target_files}'"
34
+ elsif opts[:direction] == :download
35
+ source = "#{username}@#{host}:'#{source_files}'"
36
+ target = "'#{target_files}'"
37
+ end
38
+
39
+ command = [
40
+ 'scp',
41
+ '-r',
42
+ '-o StrictHostKeyChecking=no',
43
+ '-o UserKnownHostsFile=/dev/null',
44
+ "-o port=#{@ssh_info[:port]}",
45
+ '-o LogLevel=ERROR',
46
+ proxy_command,
47
+ @ssh_info[:private_key_path].map { |k| "-i '#{k}'" }.join(' '),
48
+ source,
49
+ target
50
+ ].join(' ')
51
+
52
+ command_opts = {}
53
+ command_opts[:workdir] = machine.env.root_path.to_s
54
+
55
+ machine.ui.info(I18n.t('vagrant.scp_folder', source_files: source_files, target_files: target_files))
56
+
57
+ command += [command_opts]
58
+
59
+ r = Vagrant::Util::Subprocess.execute(*command)
60
+
61
+ return if r.exit_code.zero?
62
+
63
+ raise Vagrant::Errors::SyncedFolderScpSyncError,
64
+ command: command.inspect,
65
+ source_files: source_files,
66
+ target_files: target_files,
67
+ stderr: r.stderr
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'vagrant'
4
+
5
+ module Vagrant
6
+ module Errors
7
+ # This Class denotes Errors for SCP Sync
8
+ class SyncedFolderScpSyncError < VagrantError
9
+ error_key(:scp_sync_error, 'vagrant_scp_sync.errors')
10
+ end
11
+
12
+ # This Class denotes that SCP Sync is not found
13
+ class SCPNotFound < VagrantError
14
+ error_key(:scp_installed_error, 'vagrant_scp_sync.errors')
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ begin
4
+ require 'vagrant'
5
+ rescue LoadError
6
+ raise 'The vagrant-scp-sync plugin must be run within Vagrant.'
7
+ end
8
+
9
+ raise 'The vagrant-scp-sync plugin is only compatible with Vagrant 2+' if Vagrant::VERSION < '2'
10
+
3
11
  module VagrantPlugins
4
12
  module ScpSync
5
13
  # This defines the class for the plugin vagrant-scp-sync
@@ -10,8 +18,19 @@ module VagrantPlugins
10
18
  DESC
11
19
 
12
20
  command 'scp' do
13
- require_relative 'commands/scp'
14
- Command::ScpSync
21
+ setup_i18n
22
+ require_relative 'command'
23
+ Command
24
+ end
25
+
26
+ synced_folder('scp', 5) do
27
+ require_relative 'synced_folder'
28
+ SyncedFolder
29
+ end
30
+
31
+ def self.setup_i18n
32
+ I18n.load_path << File.expand_path('locales/en.yml', ScpSync.source_root)
33
+ I18n.reload!
15
34
  end
16
35
  end
17
36
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'log4r'
4
+ require 'vagrant/util/subprocess'
5
+ require 'vagrant/util/which'
6
+
7
+ require_relative 'action/scp_sync'
8
+
9
+ module VagrantPlugins
10
+ module ScpSync
11
+ # This Class prepares the environment for SCP Sync
12
+ class SyncedFolder < Vagrant.plugin('2', :synced_folder)
13
+ include Vagrant::Util
14
+
15
+ def initialize(*args)
16
+ super
17
+
18
+ @logger = Log4r::Logger.new('vagrant_scp_sync')
19
+ end
20
+
21
+ def usable?(_machine, raise_error: false)
22
+ scp_path = Which.which('scp')
23
+ return true if scp_path
24
+
25
+ return false unless raise_error
26
+
27
+ raise Vagrant::Errors::SCPNotFound
28
+ end
29
+
30
+ def prepare(machine, folders, opts); end
31
+
32
+ def enable(machine, folders, _opts)
33
+ ssh_info = machine.ssh_info
34
+
35
+ machine.ui.warn(I18n.t('vagrant.scp_ssh_password')) if ssh_info[:private_key_path].empty? && ssh_info[:password]
36
+
37
+ folders.each_value do |folder_opts|
38
+ ScpSyncHelper.scp_single(machine, folder_opts)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Vagrant
4
4
  module ScpSync
5
- VERSION = '0.5.8'
5
+ VERSION = '0.5.9'
6
6
  NAME = 'vagrant-scp-sync'
7
7
  end
8
8
  end
@@ -2,3 +2,13 @@
2
2
 
3
3
  require 'vagrant-scp-sync/version'
4
4
  require 'vagrant-scp-sync/plugin'
5
+ require 'vagrant-scp-sync/errors'
6
+
7
+ module VagrantPlugins
8
+ # This is used to SCP files to/from Guests and Hosts
9
+ module ScpSync
10
+ def self.source_root
11
+ @source_root ||= Pathname.new(File.expand_path('..', __dir__))
12
+ end
13
+ end
14
+ end
data/locales/en.yml CHANGED
@@ -1,5 +1,18 @@
1
- en:
2
- vagrant_scp_sync:
3
- errors:
4
- not_yet_implemented: |-
5
- Configuration is not yet implemented
1
+ en:
2
+ vagrant_scp_sync:
3
+ errors:
4
+ not_yet_implemented: |-
5
+ Configuration is not yet implemented
6
+
7
+ scp_sync_error: |-
8
+ There was an error when attemping to sync folders using scp.
9
+ Please inspect the error message below for more info.
10
+
11
+ Host path: %{hostpath}
12
+ Guest path: %{guestpath}
13
+ Error: %{stderr}
14
+ Full command causing error:
15
+ %{command}
16
+
17
+ scp_installed_error: |-
18
+ SCP was not detected as installed
data/vagrant-scp.gemspec CHANGED
@@ -29,10 +29,10 @@ Gem::Specification.new do |spec|
29
29
 
30
30
  spec.required_ruby_version = '>= 2.7.0'
31
31
  spec.required_rubygems_version = '>= 1.3.6'
32
- spec.add_runtime_dependency 'i18n', '~> 1.0'
33
- spec.add_runtime_dependency 'iniparse', '~> 1.0'
34
- spec.add_runtime_dependency 'log4r', '~> 1.1'
35
- spec.add_runtime_dependency 'netaddr', '~> 2.0', '>= 2.0.4'
36
- spec.add_runtime_dependency 'net-scp', '>= 1.1'
37
- spec.add_runtime_dependency 'ruby_expect', '~> 1.7', '>= 1.7.5'
32
+ spec.add_dependency 'i18n', '~> 1.0'
33
+ spec.add_dependency 'iniparse', '~> 1.0'
34
+ spec.add_dependency 'log4r', '~> 1.1'
35
+ spec.add_dependency 'netaddr', '~> 2.0', '>= 2.0.4'
36
+ spec.add_dependency 'net-scp', '>= 1.1'
37
+ spec.add_dependency 'ruby_expect', '~> 1.7', '>= 1.7.5'
38
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-scp-sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.8
4
+ version: 0.5.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Gilbert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-25 00:00:00.000000000 Z
11
+ date: 2024-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -122,6 +122,7 @@ files:
122
122
  - ".gitignore"
123
123
  - ".rspec"
124
124
  - ".rubocop.yml"
125
+ - ".vscode/settings.json"
125
126
  - CHANGELOG.md
126
127
  - CODE_OF_CONDUCT.md
127
128
  - CONTRIBUTING.md
@@ -138,8 +139,11 @@ files:
138
139
  - docs/css/styles.css
139
140
  - docs/index.html
140
141
  - lib/vagrant-scp-sync.rb
141
- - lib/vagrant-scp-sync/commands/scp.rb
142
+ - lib/vagrant-scp-sync/action/scp_sync.rb
143
+ - lib/vagrant-scp-sync/command/scp.rb
144
+ - lib/vagrant-scp-sync/errors.rb
142
145
  - lib/vagrant-scp-sync/plugin.rb
146
+ - lib/vagrant-scp-sync/synced_folders.rb
143
147
  - lib/vagrant-scp-sync/version.rb
144
148
  - locales/en.yml
145
149
  - vagrant-scp.gemspec
File without changes