15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/vagrant-unificar/command.rb', line 15
def init(machine)
usuario = self.usuario
host_ip = machine.config.unificar.host_ip == nil ? "10.0.2.2": machine.config.unificar.host_ip
local_dir = machine.config.unificar.local_dir == "." ? File.realpath("."): machine.config.unificar.local_dir
remote_mountpoint = machine.config.unificar.remote_mountpoint
debug = machine.config.unificar.debug
if usuario.nil? || local_dir.nil? || remote_mountpoint.nil?
machine.ui.error("Alguno de los valores necesarios en el archivo Vagrantfile no fueron cargados" , {:prefix => false})
machine.ui.error("Ejemplo de configuracion valida: " , {:prefix => false})
machine.ui.info("config.unificar.local_dir = \".\"", {:prefix => false})
machine.ui.info("config.unificar.remote_mountpoint = \"/vagrant\"", {:prefix => false})
return 1
end
password = machine.ui.ask("#{usuario}@#{host_ip} (no se vera el password al ser tecleado): ", {:prefix => false, :echo => false})
cmd = "echo \"#{password}\" | sshfs -o allow_other -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o password_stdin #{usuario}@#{host_ip}:#{local_dir} #{remote_mountpoint}"
if not debug.nil? and debug == true
machine.ui.info(cmd, {:prefix => false})
end
ret = machine.communicate.execute(cmd, {:error_check => false})
if ret == 0
machine.ui.info("#{local_dir} -> #{remote_mountpoint} Montado correctamente", {:prefix => false})
else
machine.ui.error("#{local_dir} -> #{remote_mountpoint} Imposible montar" , {:prefix => false})
machine.ui.info("Posibles problemas:", {:prefix => false})
machine.ui.info("\t-> Password esta mal escrito", {:prefix => false})
machine.ui.info("\t-> SSHFS no está instalado en la fisica o en la virtual", {:prefix => false})
machine.ui.info("\t-> Se encuentra ya montado", {:prefix => false})
machine.ui.info("\t-> Mounpoint no esta vacio", {:prefix => false})
machine.ui.info("\t-> Mounpoint no tiene los permisos correctos", {:prefix => false})
machine.ui.info("\t-> Mounpoint o el directorio local no existen", {:prefix => false})
end
end
|