vagrant-rsync 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +2 -0
- data/lib/command.rb +55 -3
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NjRjMzc4ODNmMmQ4ZDRiNTk0YWNiNTE3YmYyMjhjYTE1YzVlZGE0OQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NGU5MGE1NjE5NmZlOWViMDI5NzRhZGQxYWEwMjQxMThmZmQ5OTVlZg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MzJmNDNmZWRkYjBmMjU5ZDM2ZjJhODM4NmNlYTI1YThhYWQ1Yjk4NzA4NmNl
|
10
|
+
MWExNTg5NmVlY2I4MTkzYzkyYzMyMmU3NGM0YWE1OWM5YWYyNTNlMWZmYTlj
|
11
|
+
MGQ0MmMyNDNkNzlmOGViN2Y3YjNhM2M1MjU3ZDQ5ZWI5YTU0ZTg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjliZmQwOGU2M2Y1YWRiYzE0Y2Q2N2U5MWExZWFjZTE2OTZjNGUxNDBlM2Vl
|
14
|
+
NmZmNzcxNWVjZjY5OTdiNDY4YTE0NGEwYWVmMTJhYTI5ZGVmMDAxZWYxNzRk
|
15
|
+
N2NhOTA5YjJmNjUzOGJkNDcyMzBiYTU1NGY0ZjI0M2FjOTc0ZmU=
|
data/README.md
CHANGED
@@ -8,6 +8,7 @@ Based off of [Vagrant-Sync](https://github.com/calavera/vagrant-sync)
|
|
8
8
|
## Features
|
9
9
|
* automatically detects all shared folders, on all named machines
|
10
10
|
* syncs em up.
|
11
|
+
* install rsync automatically on a variety of linux based guests. (turn off with --no-install)
|
11
12
|
|
12
13
|
## Usage
|
13
14
|
|
@@ -24,6 +25,7 @@ Note: This plugin is meant for interacting with guests that are not running on y
|
|
24
25
|
I have no idea what will happen if you are sharing with NFS or virtualbox shared folders.
|
25
26
|
It might destroy all your data and turn your co-workers into angry badgers. Be forewarned.
|
26
27
|
|
28
|
+
If you'd like me to add new guests to the rsync auto-install, send me the command to install rsync, and I'll make it happen.
|
27
29
|
|
28
30
|
Can be mixed in with Guard or kicker or what-have-you to rsync whenever the host filesystem changes.
|
29
31
|
|
data/lib/command.rb
CHANGED
@@ -1,27 +1,76 @@
|
|
1
1
|
require 'optparse'
|
2
|
+
require 'pp'
|
2
3
|
module VagrantPlugins
|
3
4
|
module CommandRSYNC
|
4
5
|
class Command < Vagrant.plugin("2", :command)
|
6
|
+
|
7
|
+
class RsyncNotAvailableError < Vagrant::Errors::VagrantError
|
8
|
+
error_namespace("vagrant.plugin.vagrant-rsync")
|
9
|
+
end
|
10
|
+
|
11
|
+
def verify_rsync(vm)
|
12
|
+
begin
|
13
|
+
vm.communicate.execute("rsync --version")
|
14
|
+
rescue Exception => e
|
15
|
+
@env.ui.say(:info, "rsync not found, installing rsync now. disable this with --no-install")
|
16
|
+
# should notify people we are installing rsync here.
|
17
|
+
case vm.guest.name
|
18
|
+
when :debian, :ubuntu
|
19
|
+
vm.communicate.sudo("apt-get update")
|
20
|
+
vm.communicate.sudo("apt-get install rsync")
|
21
|
+
when :fedora, :centos, :redhat
|
22
|
+
vm.communicate.sudo("yum install rsync")
|
23
|
+
when :suse
|
24
|
+
vm.communicate.sudo("yast2 -i rsync")
|
25
|
+
when :gentoo
|
26
|
+
vm.communicate.sudo("emerge rsync")
|
27
|
+
when :arch
|
28
|
+
vm.communicate.sudo("pacman -s rsync")
|
29
|
+
# when :solaris
|
30
|
+
# vm.communicate.sudo("pkg install rsync")
|
31
|
+
# when :freebsd
|
32
|
+
# vm.communicate.sudo("pkg_add -r rsync")
|
33
|
+
else
|
34
|
+
raise RsyncNotAvailableError
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
5
39
|
def execute
|
6
|
-
options = {
|
40
|
+
options = { :install_rsync => true,
|
41
|
+
:verbose => false}
|
7
42
|
|
8
43
|
opts = OptionParser.new do |opt|
|
9
44
|
opt.banner = "Usage: vagrant rsync [vm-name]"
|
10
|
-
opt.on(
|
45
|
+
opt.on("-n","--no-install", "do not attempt to install rysnc if not found") do |v|
|
46
|
+
options[:install_rsync] = false
|
47
|
+
end
|
48
|
+
opt.on('-v','--verbose',"Run verbosely") do |v|
|
11
49
|
options[:verbose] = true
|
12
50
|
end
|
51
|
+
opts.on( '-h', '--help', 'Display this screen' ) do
|
52
|
+
puts opts
|
53
|
+
exit
|
54
|
+
end
|
13
55
|
end
|
14
56
|
|
15
57
|
argv = parse_options(opts)
|
16
58
|
unless argv
|
17
59
|
argv=["default"]
|
18
60
|
end
|
61
|
+
|
19
62
|
with_target_vms(argv) do |vm|
|
20
63
|
raise Vagrant::Errors::VMNotCreatedError if vm.state.id == :not_created
|
21
64
|
raise Vagrant::Errors::VMInaccessible if vm.state.id == :inaccessible
|
22
65
|
end
|
23
66
|
|
24
67
|
with_target_vms(argv) do |vm|
|
68
|
+
|
69
|
+
if options[:install_rsync]
|
70
|
+
@env.ui.say(:info,"checking if rsync exists on host")
|
71
|
+
verify_rsync(vm)
|
72
|
+
end
|
73
|
+
|
25
74
|
vm.config.vm.synced_folders.each do |id, data|
|
26
75
|
next if data[:nfs]
|
27
76
|
hostpath = File.expand_path(data[:hostpath], vm.env.root_path)
|
@@ -41,10 +90,13 @@ module VagrantPlugins
|
|
41
90
|
|
42
91
|
|
43
92
|
if options[:verbose]
|
44
|
-
|
93
|
+
## should the vagrant way of outputting text
|
94
|
+
@env.ui.say(:info,command.join(" "))
|
45
95
|
end
|
46
96
|
|
47
97
|
r = Vagrant::Util::Subprocess.execute(*command)
|
98
|
+
@env.ui.say(:info, "done") if options[:verbose]
|
99
|
+
pp r.inspect
|
48
100
|
if r.exit_code != 0
|
49
101
|
raise Errors::RsyncError,
|
50
102
|
:guestpath => guestpath,
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-rsync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bill Cromie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|