mirror of
https://0xacab.org/sutty/sutty
synced 2024-07-01 11:56:08 +00:00
50 lines
1.2 KiB
Ruby
50 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# Vincula la versión del sitio con www a la versión sin
|
|
class DeployWww < Deploy
|
|
# La forma de hacer este deploy es generar un link simbólico entre el
|
|
# directorio canónico y el actual.
|
|
#
|
|
# @return [Boolean]
|
|
def deploy
|
|
# Eliminar los links rotos
|
|
remove_destination! if broken?
|
|
|
|
# No hacer nada si ya existe.
|
|
return true if exist?
|
|
|
|
# Generar un link simbólico con la ruta relativa al destino
|
|
File.symlink(relative_path, destination).zero?
|
|
end
|
|
|
|
# Siempre devuelve el espacio ocupado por el link simbólico, no el
|
|
# destino.
|
|
#
|
|
# @return [Integer]
|
|
def size
|
|
relative_path.size
|
|
end
|
|
|
|
# El hostname por defecto incluye WWW
|
|
#
|
|
# @return [String]
|
|
def default_hostname
|
|
"www.#{site.deploy_local.hostname}"
|
|
end
|
|
|
|
private
|
|
|
|
# Elimina el link simbólico si se elimina este deploy.
|
|
def remove_destination!
|
|
FileUtils.rm_f destination
|
|
end
|
|
|
|
# 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
|
|
end
|