mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-25 01:46:22 +00:00
55 lines
1.2 KiB
Ruby
55 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'distributed_press/v1/social/client'
|
|
|
|
# Publicar novedades al Fediverso
|
|
class DeploySocialDistributedPress < Deploy
|
|
# Solo luego de publicar remotamente
|
|
DEPENDENCIES = %i[deploy_distributed_press deploy_rsync deploy_full_rsync]
|
|
|
|
# Envía las notificaciones
|
|
def deploy(output: false)
|
|
with_tempfile(site.private_key_pem) do |file|
|
|
key = Shellwords.escape file.path
|
|
dest = Shellwords.escape destination
|
|
|
|
run %(bundle exec jekyll notify --trace --key #{key} --destination "#{dest}"), output: output
|
|
end
|
|
end
|
|
|
|
# Igual que DeployLocal
|
|
#
|
|
# @return [String]
|
|
def destination
|
|
File.join(Rails.root, '_deploy', site.hostname)
|
|
end
|
|
|
|
# Solo uno
|
|
#
|
|
# @return [Integer]
|
|
def limit
|
|
1
|
|
end
|
|
|
|
# Espacio ocupado, pero no podemos calcularlo
|
|
#
|
|
# @return [Integer]
|
|
def size
|
|
0
|
|
end
|
|
|
|
# El perfil de actor
|
|
#
|
|
# @return [String,nil]
|
|
def url
|
|
site.data.dig('activity_pub', 'actor')
|
|
end
|
|
|
|
# Genera la opción de llave privada para jekyll build
|
|
#
|
|
# @params :args [Hash]
|
|
# @return [String]
|
|
def flags_for_build(**args)
|
|
"--key #{Shellwords.escape args[:private_key].path}"
|
|
end
|
|
end
|