Code générique de la page d'accueil personnalisée YunoHost (Makefile, scripts, éditeur visuel)
This commit is contained in:
Executable
+53
@@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
# Deploie le contenu de output/ (voir "make export") sur l'app YunoHost.
|
||||
# Voir README.md pour le detail des parametres et l'authentification par cle SSH.
|
||||
#
|
||||
# Le compte SSH d'une app "Custom Webapp" YunoHost est en general limite a
|
||||
# SFTP (ForceCommand internal-sftp) et chroote dans son propre dossier home
|
||||
# (/var/www/<REMOTE_USER>) : rsync ne fonctionne donc pas (il a besoin
|
||||
# d'executer un shell distant), et le chemin distant doit etre relatif a la
|
||||
# racine du chroot, pas un chemin absolu du systeme de fichiers du serveur.
|
||||
|
||||
set -eu
|
||||
|
||||
SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
|
||||
PROJECT_ROOT="$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)"
|
||||
OUTPUT_DIR="$PROJECT_ROOT/output"
|
||||
|
||||
if [ ! -f "${PROJECT_ROOT}/.env" ]; then
|
||||
echo "Aucun .env trouve : lance 'make config' puis renseigne-le (voir .env.example)." >&2
|
||||
exit 1
|
||||
fi
|
||||
# shellcheck disable=SC1090,SC1091
|
||||
. "${PROJECT_ROOT}/.env"
|
||||
|
||||
if [ ! -f "${OUTPUT_DIR}/index.html" ]; then
|
||||
echo "output/ est vide ou incomplet : lance d'abord 'make export' (ou le bouton Export de l'editeur)." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${REMOTE_HOST:-}" ] || [ -z "${REMOTE_USER:-}" ]; then
|
||||
echo "REMOTE_HOST et REMOTE_USER doivent etre renseignes dans .env (voir .env.example)." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REMOTE_PORT="${REMOTE_PORT:-22}"
|
||||
# Chemin relatif a la racine du chroot SFTP (pas le chemin absolu serveur).
|
||||
REMOTE_PATH="${REMOTE_PATH:-/www/}"
|
||||
|
||||
SCP="scp"
|
||||
|
||||
if [ -n "${REMOTE_PASSWORD:-}" ]; then
|
||||
if ! command -v sshpass > /dev/null 2>&1; then
|
||||
echo "REMOTE_PASSWORD est defini dans .env mais sshpass n'est pas installe (apt install sshpass)." >&2
|
||||
exit 1
|
||||
fi
|
||||
SCP="sshpass -p ${REMOTE_PASSWORD} scp"
|
||||
fi
|
||||
|
||||
${SCP} -P "${REMOTE_PORT}" \
|
||||
"${OUTPUT_DIR}/index.html" \
|
||||
"${OUTPUT_DIR}/style.css" \
|
||||
"${OUTPUT_DIR}/app.js" \
|
||||
"${OUTPUT_DIR}/config.json" \
|
||||
"${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}"
|
||||
Reference in New Issue
Block a user