vagrant-sshfs 0.0.4 → 0.0.5.beta1
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/CHANGELOG.md +10 -0
- data/Gemfile.lock +1 -1
- data/README.md +28 -0
- data/Vagrantfile +1 -0
- data/lib/vagrant-sshfs/actions.rb +61 -15
- data/lib/vagrant-sshfs/config.rb +4 -0
- data/lib/vagrant-sshfs/version.rb +1 -1
- data/lib/vagrant-sshfs.rb +1 -1
- data/locales/en.yml +2 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ecfea9cb249194e1e907464e021f17a49e5a876
|
4
|
+
data.tar.gz: ca924db4c82d1223c6ecd6caa93f8703d1001227
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e10705226d1af4aab7033e44ccad80a12d0f09abe33aadea1ddbef0001ac3705f50856f48064e5b0ba4d789cbaef3a63304c0fe380603463c29d6125e360898
|
7
|
+
data.tar.gz: 16379fff339b38c6770f145db15919411d16f5fd4ee17cf0e444a33f035979ce7007130acd2b2e470e9b2839cdcc7c986010b0fc69c54cfab36a370f494d4223
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## vagrant-sshfs 0.0.5 ##
|
2
|
+
|
3
|
+
* Allows to disable the plugin to run on demand.
|
4
|
+
|
5
|
+
*Stéphane Klein*
|
6
|
+
|
7
|
+
* Allows to mount a host folder on the guest machine
|
8
|
+
|
9
|
+
*Adrian Olek*
|
10
|
+
|
1
11
|
## vagrant-sshfs 0.0.4 (March 5, 2014) ##
|
2
12
|
|
3
13
|
* Allows to set a custom ssh username.
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -22,6 +22,34 @@ By default it will use the Vagrant ssh username. You can change that with the fo
|
|
22
22
|
|
23
23
|
`config.sshfs.username = "theusername"`
|
24
24
|
|
25
|
+
The plugin is enabled by default, so it will run everytime the machine starts. In case that is not desired, you can disabled that with the following configuration:
|
26
|
+
|
27
|
+
`config.sshfs.enabled = false`
|
28
|
+
|
29
|
+
## Issues
|
30
|
+
|
31
|
+
### Connection reset by peer
|
32
|
+
|
33
|
+
In case you are getting "Connection reset by peer" errors, it might be the case that you already have a host configuration under your `~/.ssh/know_hosts` for the given ip, and you are using the same ip with a different machine. If that is the case, you can set a `StrictHostKeyChecking no` under that ip to skip the check:
|
34
|
+
|
35
|
+
```
|
36
|
+
Host 127.0.0.1
|
37
|
+
StrictHostKeyChecking no
|
38
|
+
```
|
39
|
+
|
40
|
+
### Mounting on guest (box)
|
41
|
+
|
42
|
+
You need to have `sshfs` installed on guest machine and ssh server on host.
|
43
|
+
|
44
|
+
To mount a host folder on guest machine add a configuration like this:
|
45
|
+
|
46
|
+
config.sshfs.mount_on_guest = true
|
47
|
+
config.sshfs.paths = { "src" => "mountpoint" }
|
48
|
+
config.sshfs.host_addr = '10.0.2.2'
|
49
|
+
|
50
|
+
`src` is the source absolute path to the folder in the host machine, `mountpoint` is the folder in the guest. `src` can be an absolute path, or relative to the `Vagrantfile`.
|
51
|
+
`host_addr` is the host machine IP accessible from guest.
|
52
|
+
|
25
53
|
## Contributing
|
26
54
|
|
27
55
|
If you have issues or ideas, please contribute! You can create an issue throught Github, or send a Pull Request.
|
data/Vagrantfile
CHANGED
@@ -11,16 +11,47 @@ module Vagrant
|
|
11
11
|
def mount!
|
12
12
|
paths.each do |src, target|
|
13
13
|
info("mounting", src: src, target: target)
|
14
|
-
|
14
|
+
mount(src, target)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
|
18
|
+
def mount
|
19
|
+
raise NotImplementedError
|
20
|
+
end
|
19
21
|
|
20
22
|
def paths
|
21
23
|
machine.config.sshfs.paths
|
22
24
|
end
|
23
25
|
|
26
|
+
def machine
|
27
|
+
@env[:machine]
|
28
|
+
end
|
29
|
+
|
30
|
+
def info(key, *args)
|
31
|
+
@env[:ui].info(i18n("info.#{key}", *args))
|
32
|
+
end
|
33
|
+
|
34
|
+
def ask(key, *args)
|
35
|
+
@env[:ui].ask(i18n("ask.#{key}", *args), :new_line => true)
|
36
|
+
end
|
37
|
+
|
38
|
+
def error(key, *args)
|
39
|
+
@env[:ui].error(i18n("error.#{key}", *args))
|
40
|
+
raise Error, :base
|
41
|
+
end
|
42
|
+
|
43
|
+
def i18n(key, *args)
|
44
|
+
I18n.t("vagrant.config.sshfs.#{key}", *args)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class HostBuilder < Builder
|
49
|
+
private
|
50
|
+
|
51
|
+
def mount(src, target)
|
52
|
+
`sshfs -p #{port} #{username}@#{host}:#{check_src!(src)} #{check_target!(target)} -o IdentityFile=#{private_key}`
|
53
|
+
end
|
54
|
+
|
24
55
|
def ssh_info
|
25
56
|
machine.ssh_info
|
26
57
|
end
|
@@ -75,26 +106,33 @@ module Vagrant
|
|
75
106
|
def target_folder(target)
|
76
107
|
File.expand_path(target)
|
77
108
|
end
|
109
|
+
end
|
78
110
|
|
79
|
-
|
80
|
-
|
81
|
-
end
|
111
|
+
class GuestBuilder < Builder
|
112
|
+
private
|
82
113
|
|
83
|
-
def
|
84
|
-
|
114
|
+
def mount(src, target)
|
115
|
+
source = File.expand_path(src)
|
116
|
+
|
117
|
+
status = machine.communicate.execute(
|
118
|
+
"echo \"#{password}\" | sshfs -o allow_other -o password_stdin #{username}@#{host}:#{source} #{target}",
|
119
|
+
:sudo => true, :error_check => false)
|
120
|
+
|
121
|
+
if status != 0
|
122
|
+
error('not_mounted', src: source, target: target)
|
123
|
+
end
|
85
124
|
end
|
86
125
|
|
87
|
-
def
|
88
|
-
|
126
|
+
def host
|
127
|
+
machine.config.sshfs.host_addr
|
89
128
|
end
|
90
129
|
|
91
|
-
def
|
92
|
-
|
93
|
-
raise Error, :base
|
130
|
+
def username
|
131
|
+
`whoami`.strip
|
94
132
|
end
|
95
133
|
|
96
|
-
def
|
97
|
-
|
134
|
+
def password
|
135
|
+
Shellwords.escape(@env[:ui].ask(i18n("ask.pass", :user => "#{username}@#{host}"), :echo => false))
|
98
136
|
end
|
99
137
|
end
|
100
138
|
|
@@ -105,7 +143,15 @@ module Vagrant
|
|
105
143
|
end
|
106
144
|
|
107
145
|
def call(env)
|
108
|
-
|
146
|
+
get_builder(env).mount! if @machine.config.sshfs.enabled
|
147
|
+
end
|
148
|
+
|
149
|
+
def get_builder(env)
|
150
|
+
if @machine.config.sshfs.mount_on_guest
|
151
|
+
GuestBuilder.new(env)
|
152
|
+
else
|
153
|
+
HostBuilder.new(env)
|
154
|
+
end
|
109
155
|
end
|
110
156
|
end
|
111
157
|
end
|
data/lib/vagrant-sshfs/config.rb
CHANGED
@@ -3,10 +3,14 @@ module Vagrant
|
|
3
3
|
class Config < Vagrant.plugin(2, :config)
|
4
4
|
attr_accessor :paths
|
5
5
|
attr_accessor :username
|
6
|
+
attr_accessor :enabled
|
7
|
+
attr_accessor :mount_on_guest
|
8
|
+
attr_accessor :host_addr
|
6
9
|
|
7
10
|
def initialize
|
8
11
|
@paths = {}
|
9
12
|
@username = nil
|
13
|
+
@enabled = true
|
10
14
|
end
|
11
15
|
|
12
16
|
def merge(other)
|
data/lib/vagrant-sshfs.rb
CHANGED
data/locales/en.yml
CHANGED
@@ -10,8 +10,10 @@ en:
|
|
10
10
|
ask:
|
11
11
|
create_src: "Source folder `%{src}` does not exist, create?"
|
12
12
|
create_target: "Target folder `%{target}` does not exist, create?"
|
13
|
+
pass: "Password for `%{user}`:"
|
13
14
|
error:
|
14
15
|
base: "vagrant-sshfs failed and couldn't proceed"
|
15
16
|
non_empty_target: "Non empty target folder `%{target}`"
|
16
17
|
not_created_src: "Source folder `%{src}` was not created"
|
17
18
|
not_created_target: "Target folder `%{target}` was not created"
|
19
|
+
not_mounted: "Error when mounting `%{src}` to `%{target}`"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-sshfs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fabiokr
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -75,9 +75,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
75
75
|
version: '0'
|
76
76
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
77
|
requirements:
|
78
|
-
- - "
|
78
|
+
- - ">"
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
version:
|
80
|
+
version: 1.3.1
|
81
81
|
requirements: []
|
82
82
|
rubyforge_project:
|
83
83
|
rubygems_version: 2.1.11
|