guests/{free,net,open}bsd: Add `shell_expand_guest_path` capability
This commit is contained in:
parent
e634cdc824
commit
023d3115dd
|
@ -0,0 +1,27 @@
|
||||||
|
module VagrantPlugins
|
||||||
|
module GuestFreeBSD
|
||||||
|
module Cap
|
||||||
|
class ShellExpandGuestPath
|
||||||
|
def self.shell_expand_guest_path(machine, path)
|
||||||
|
real_path = nil
|
||||||
|
machine.communicate.execute("printf #{path}",
|
||||||
|
shell: "sh") do |type, data|
|
||||||
|
if type == :stdout
|
||||||
|
real_path ||= ""
|
||||||
|
real_path += data
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if !real_path
|
||||||
|
# If no real guest path was detected, this is really strange
|
||||||
|
# and we raise an exception because this is a bug.
|
||||||
|
raise ShellExpandFailed
|
||||||
|
end
|
||||||
|
|
||||||
|
# Chomp the string so that any trailing newlines are killed
|
||||||
|
return real_path.chomp
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -30,6 +30,11 @@ module VagrantPlugins
|
||||||
require_relative "cap/mount_nfs_folder"
|
require_relative "cap/mount_nfs_folder"
|
||||||
Cap::MountNFSFolder
|
Cap::MountNFSFolder
|
||||||
end
|
end
|
||||||
|
|
||||||
|
guest_capability("freebsd", "shell_expand_guest_path") do
|
||||||
|
require_relative "cap/shell_expand_guest_path"
|
||||||
|
Cap::ShellExpandGuestPath
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
module VagrantPlugins
|
||||||
|
module GuestNetBSD
|
||||||
|
module Cap
|
||||||
|
class ShellExpandGuestPath
|
||||||
|
def self.shell_expand_guest_path(machine, path)
|
||||||
|
real_path = nil
|
||||||
|
machine.communicate.execute("printf #{path}") do |type, data|
|
||||||
|
if type == :stdout
|
||||||
|
real_path ||= ""
|
||||||
|
real_path += data
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if !real_path
|
||||||
|
# If no real guest path was detected, this is really strange
|
||||||
|
# and we raise an exception because this is a bug.
|
||||||
|
raise ShellExpandFailed
|
||||||
|
end
|
||||||
|
|
||||||
|
# Chomp the string so that any trailing newlines are killed
|
||||||
|
return real_path.chomp
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -30,6 +30,11 @@ module VagrantPlugins
|
||||||
require_relative "cap/mount_nfs_folder"
|
require_relative "cap/mount_nfs_folder"
|
||||||
Cap::MountNFSFolder
|
Cap::MountNFSFolder
|
||||||
end
|
end
|
||||||
|
|
||||||
|
guest_capability("netbsd", "shell_expand_guest_path") do
|
||||||
|
require_relative "cap/shell_expand_guest_path"
|
||||||
|
Cap::ShellExpandGuestPath
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
module VagrantPlugins
|
||||||
|
module GuestOpenBSD
|
||||||
|
module Cap
|
||||||
|
class ShellExpandGuestPath
|
||||||
|
def self.shell_expand_guest_path(machine, path)
|
||||||
|
real_path = nil
|
||||||
|
machine.communicate.execute("printf #{path}") do |type, data|
|
||||||
|
if type == :stdout
|
||||||
|
real_path ||= ""
|
||||||
|
real_path += data
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if !real_path
|
||||||
|
# If no real guest path was detected, this is really strange
|
||||||
|
# and we raise an exception because this is a bug.
|
||||||
|
raise ShellExpandFailed
|
||||||
|
end
|
||||||
|
|
||||||
|
# Chomp the string so that any trailing newlines are killed
|
||||||
|
return real_path.chomp
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -30,6 +30,11 @@ module VagrantPlugins
|
||||||
require_relative "cap/mount_nfs_folder"
|
require_relative "cap/mount_nfs_folder"
|
||||||
Cap::MountNFSFolder
|
Cap::MountNFSFolder
|
||||||
end
|
end
|
||||||
|
|
||||||
|
guest_capability("openbsd", "shell_expand_guest_path") do
|
||||||
|
require_relative "cap/shell_expand_guest_path"
|
||||||
|
Cap::ShellExpandGuestPath
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue