2019-10-01 19:41:33 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
# Vincula la versión del sitio con www a la versión sin
|
|
|
|
class DeployWww < Deploy
|
2021-08-02 00:53:00 +00:00
|
|
|
# La forma de hacer este deploy es generar un link simbólico entre el
|
|
|
|
# directorio canónico y el actual.
|
|
|
|
#
|
|
|
|
# @return [Boolean]
|
2019-10-01 19:41:33 +00:00
|
|
|
def deploy
|
2021-08-14 23:27:25 +00:00
|
|
|
# Eliminar los links rotos
|
|
|
|
remove_destination! if broken?
|
|
|
|
|
|
|
|
# No hacer nada si ya existe.
|
|
|
|
return true if exist?
|
2019-10-01 19:41:33 +00:00
|
|
|
|
2021-08-14 23:27:25 +00:00
|
|
|
# Generar un link simbólico con la ruta relativa al destino
|
|
|
|
File.symlink(relative_path, destination).zero?
|
2019-10-01 19:41:33 +00:00
|
|
|
end
|
|
|
|
|
2021-08-14 23:27:25 +00:00
|
|
|
# Siempre devuelve el espacio ocupado por el link simbólico, no el
|
|
|
|
# destino.
|
|
|
|
#
|
2021-08-02 00:53:00 +00:00
|
|
|
# @return [Integer]
|
2019-10-01 19:41:33 +00:00
|
|
|
def size
|
2021-08-14 23:27:25 +00:00
|
|
|
relative_path.size
|
2019-10-01 19:41:33 +00:00
|
|
|
end
|
|
|
|
|
2021-08-02 00:53:00 +00:00
|
|
|
# El hostname por defecto incluye WWW
|
|
|
|
#
|
|
|
|
# @return [String]
|
|
|
|
def default_hostname
|
|
|
|
"www.#{site.deploy_local.hostname}"
|
2019-10-01 19:41:33 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
2021-08-02 00:53:00 +00:00
|
|
|
# Elimina el link simbólico si se elimina este deploy.
|
2019-10-01 19:41:33 +00:00
|
|
|
def remove_destination!
|
2020-06-19 18:42:24 +00:00
|
|
|
FileUtils.rm_f destination
|
2019-10-01 19:41:33 +00:00
|
|
|
end
|
2021-08-14 23:27:25 +00:00
|
|
|
|
|
|
|
# Obtiene la ubicación relativa del deploy local hacia la ubicación de
|
|
|
|
# este deploy
|
|
|
|
#
|
|
|
|
# @return [String]
|
|
|
|
def relative_path
|
|
|
|
Pathname.new(site.deploy_local.destination).relative_path_from(File.dirname(destination)).to_s
|
|
|
|
end
|
2019-10-01 19:41:33 +00:00
|
|
|
end
|