vagrant-zscp 0.1.2 → 0.1.3

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
  SHA1:
3
- metadata.gz: 52bafa08098200fcff95f7b7ab64e7417aaffaf0
4
- data.tar.gz: 605975a0670d709208ab42a7b24e994a765ef876
3
+ metadata.gz: 1cfec9790fb14520e88a95d4247bdf2f9b0d649c
4
+ data.tar.gz: a4ff392d5e915713a737cfc595ebf4546a899ade
5
5
  SHA512:
6
- metadata.gz: 4083ce9f9d2dfecabb30c76773648567ed26082ecf9eeb374c4cbe8c51fedf863604fb55ac952169cf494955c739fa153143a47c5cd5983cd376ca3bad1bd10a
7
- data.tar.gz: f34547d0aa98e659ded0ef944975b38e86a7f2540cee4bbca9c818477de3427c1aa6c6c67991bd02c071bf4e5d18713a5df07252b43d0b2b7766de904333d848
6
+ metadata.gz: 7250f507f84ee9fed5c09a1517772b45f01d9304ce85b9302d4e4c8c9505f61547a7f7df5d15321a2f104ce8adfd0e8e30f49d4bbfff9afc3f3a1d1f1ba5bd01
7
+ data.tar.gz: 50de1d6a6e4a363c6fe00db8163cf3a852c14414b23d4239674507ff57b92904738dc1e70f5101be4522f81d82a1510e67f67b79fe7e8ae7a12f6b7b362cf1ee
data/.gitignore CHANGED
@@ -1 +1,3 @@
1
- /*.gem
1
+ /*.gem
2
+ /pkg
3
+ /Gemfile.lock
data/Rakefile CHANGED
@@ -1 +1,5 @@
1
1
  require "bundler/gem_tasks"
2
+
3
+ task :bump do
4
+ `gem bump`
5
+ end
@@ -44,8 +44,15 @@ module Vagrant
44
44
  ssh_info = machine.ssh_info
45
45
 
46
46
  # Sync them!
47
+ sync_threads = []
47
48
  folders.each do |id, folder_opts|
48
- ZscpHelper.scp(machine, ssh_info, folder_opts)
49
+ sync_threads << Thread.new(id, folder_opts) do |id, folder_opts|
50
+ ZscpHelper.scp(machine, ssh_info, folder_opts)
51
+ end
52
+ end
53
+
54
+ sync_threads.each do |t|
55
+ t.join
49
56
  end
50
57
  end
51
58
 
@@ -22,30 +22,43 @@ module Vagrant
22
22
  end
23
23
 
24
24
  machine.ui.info("Sending #{hostpath} to #{guestpath}")
25
- Dir.mktmpdir { |dir|
26
25
  machine.ui.info("Removing remote #{guestpath}")
27
- machine.communicate.execute("sudo rm -rf #{guestpath}; sudo mkdir -p #{guestpath}; sudo chown #{username}:$(id -gn) #{guestpath}")
26
+ remotely_execute(ssh_info, "sudo rm -rf #{guestpath}; sudo mkdir -p #{guestpath}; sudo chown #{username}:$(id -gn) #{guestpath}")
28
27
 
29
- machine.ui.info("Compressing #{hostpath} into #{dir}/temp.tar.gz")
30
- `tar -czLf #{dir}/temp.tar.gz -C #{hostpath} #{included_files}`
28
+ temp_file = `mktemp -t 'temp.XXXX.tar.gz'`.strip
31
29
 
32
- machine.ui.info("Copying #{dir}/temp.tar.gz to #{guestpath}")
30
+ machine.ui.info("Compressing #{hostpath} into #{temp_file}")
31
+ system("tar -czLf #{temp_file} -C #{hostpath} #{included_files}")
32
+
33
+ machine.ui.info("Copying #{temp_file} to #{guestpath}")
33
34
  command = [
34
35
  "scp",
35
36
  '-o StrictHostKeyChecking=no',
36
37
  '-o UserKnownHostsFile=/dev/null',
37
38
  "-o port=#{ssh_info[:port]}",
38
39
  "-i '#{ssh_info[:private_key_path][0]}'",
39
- "#{dir}/temp.tar.gz",
40
+ "#{temp_file}",
40
41
  "#{username}@#{host}:#{guestpath}"
41
42
  ].join(' ')
42
43
  system(command)
43
44
 
44
- machine.ui.info("Extracting remotely #{guestpath}/temp.tar.gz")
45
- machine.communicate.execute("tar -xzf #{guestpath}/temp.tar.gz -C #{guestpath}; rm #{guestpath}/temp.tar.gz")
46
- }
45
+ machine.ui.info("Extracting remotely #{guestpath}/temp.*.tar.gz")
46
+ remotely_execute(ssh_info, "tar -xzf #{guestpath}/temp.*.tar.gz -C #{guestpath}; rm #{guestpath}/temp.*.tar.gz")
47
47
  machine.ui.info("#{guestpath} synchronised")
48
48
  end
49
+
50
+ def self.remotely_execute(ssh_info, command)
51
+ ssh_command = [
52
+ 'ssh',
53
+ '-o StrictHostKeyChecking=no',
54
+ '-o UserKnownHostsFile=/dev/null',
55
+ "-o port=#{ssh_info[:port]}",
56
+ "-i '#{ssh_info[:private_key_path][0]}'",
57
+ "#{ssh_info[:username]}@#{ssh_info[:host]}",
58
+ "'#{command}'"
59
+ ].join(' ')
60
+ system(ssh_command)
61
+ end
49
62
  end
50
63
  end
51
64
  end
@@ -22,7 +22,16 @@ module Vagrant
22
22
  ssh_info = machine.ssh_info
23
23
 
24
24
  folders.each do |id, folder_opts|
25
- ZscpHelper.scp(machine, ssh_info, folder_opts)
25
+ sync_threads = []
26
+ folders.each do |id, folder_opts|
27
+ sync_threads << Thread.new(id, folder_opts) do |id, folder_opts|
28
+ ZscpHelper.scp(machine, ssh_info, folder_opts)
29
+ end
30
+ end
31
+
32
+ sync_threads.each do |t|
33
+ t.join
34
+ end
26
35
  end
27
36
  end
28
37
  end
@@ -1,5 +1,5 @@
1
1
  module Vagrant
2
2
  module Zscp
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Colin Hebert"]
10
10
  spec.email = ["chebert@atlassian.com"]
11
11
 
12
- spec.summary = %q{Copies files to a vagrant VM using scp and compressing the content.}
12
+ spec.summary = %q{Copies files to a vagrant VM using scp.}
13
13
  spec.description = %q{Copies files to a vagrant VM using scp and compressing the content.}
14
14
  spec.homepage = "https://www.atlassian.com"
15
15
 
@@ -18,7 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.10"
21
+ spec.add_development_dependency "bundler", "~> 1.7"
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "gem-release", "~> 0.7.3"
23
24
  spec.add_runtime_dependency "log4r", "~> 1.1"
24
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-zscp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin Hebert
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-22 00:00:00.000000000 Z
11
+ date: 2015-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '1.10'
19
+ version: '1.7'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '1.10'
26
+ version: '1.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: gem-release
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.7.3
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.7.3
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: log4r
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -95,5 +109,5 @@ rubyforge_project:
95
109
  rubygems_version: 2.4.6
96
110
  signing_key:
97
111
  specification_version: 4
98
- summary: Copies files to a vagrant VM using scp and compressing the content.
112
+ summary: Copies files to a vagrant VM using scp.
99
113
  test_files: []