mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-28 18:06:22 +00:00
57 lines
1.7 KiB
Text
57 lines
1.7 KiB
Text
|
#!/bin/bash
|
||
|
# TODO convertir a ruby!
|
||
|
set -e
|
||
|
|
||
|
rails_root="${PWD}"
|
||
|
|
||
|
# Encontrar todos los sitios únicos con el archivo `.generate`. Esto
|
||
|
# significa que la usuaria quiso generar el sitio.
|
||
|
find -L ./_sites -mindepth 3 -maxdepth 3 -name .generate \
|
||
|
| sed "s/\/\.generate$//" \
|
||
|
| while read _path ; do
|
||
|
# Como seguimos todos los symlinks y los sitios pueden estar
|
||
|
# vinculados entre sí, volvemos a chequear si existe el archivo para
|
||
|
# no generarlo dos veces
|
||
|
test -f "${_path}/.generate" || continue
|
||
|
|
||
|
# Obtenemos las direcciones de correo de las responsables
|
||
|
_mail=($(cat "${_path}/.usuarias"))
|
||
|
_site="$(echo "${_path}" | xargs basename)"
|
||
|
_deploy="${rails_root}/_deploy/${_site}"
|
||
|
|
||
|
# Entrar al directorio del sitio
|
||
|
pushd "${_path}" &>/dev/null
|
||
|
|
||
|
# Crear el sitio con lujo de detalles y guardar un log, pero a la vez
|
||
|
# tenerlo en la salida estándar para poder enviar al MAILTO del
|
||
|
# cronjob.
|
||
|
#
|
||
|
# Ya que estamos, eliminamos la ruta donde estamos paradas para no dar
|
||
|
# información sobre la servidora.
|
||
|
bundle exec \
|
||
|
jekyll build --trace --destination "${_deploy}" \
|
||
|
| sed -re "s,${_path},,g" \
|
||
|
> "build.log"
|
||
|
|
||
|
# Acciones posteriores
|
||
|
# TODO convertir en un plugin de cada sitio?
|
||
|
if test $? -eq 0; then
|
||
|
# Si funciona, enviar un mail
|
||
|
# TODO enviar un mail más completo y no hardcodear direcciones
|
||
|
mail -b "sysadmin@kefir.red" \
|
||
|
-s "${_site}: :)" \
|
||
|
${_mail[@]}
|
||
|
else
|
||
|
mail -b "sysadmin@kefir.red" \
|
||
|
-s "${_site}: :(" \
|
||
|
${_mail[@]}
|
||
|
date +%s >.failed
|
||
|
fi
|
||
|
|
||
|
# Eliminar el archivo para sacar el sitio de la cola de compilación
|
||
|
rm -f .generate
|
||
|
|
||
|
# Volver al principio para continuar con el siguiente sitio
|
||
|
popd &>/dev/null
|
||
|
done
|