mirror of
https://github.com/YunoHost-Apps/pelican_ynh.git
synced 2024-09-03 19:46:35 +02:00
103 lines
3.2 KiB
Bash
103 lines
3.2 KiB
Bash
#!/bin/bash
|
|
|
|
#=================================================
|
|
# GENERIC START
|
|
#=================================================
|
|
# IMPORT GENERIC HELPERS
|
|
#=================================================
|
|
|
|
source _common.sh
|
|
source /usr/share/yunohost/helpers
|
|
|
|
#=================================================
|
|
# MANAGE SCRIPT FAILURE
|
|
#=================================================
|
|
|
|
# Exit on command errors and treat unset variables as an error
|
|
set -eu
|
|
|
|
#=================================================
|
|
# GET MULTI-INSTANCES SPECIFIC VARIABLES
|
|
#=================================================
|
|
|
|
app=$YNH_APP_INSTANCE_NAME
|
|
|
|
#=================================================
|
|
# RETRIEVE ARGUMENTS FROM THE MANIFEST
|
|
#=================================================
|
|
|
|
domain=$YNH_APP_ARG_DOMAIN
|
|
path=$YNH_APP_ARG_PATH
|
|
is_public=$YNH_APP_ARG_IS_PUBLIC
|
|
author=$YNH_APP_ARG_AUTHOR
|
|
|
|
#=================================================
|
|
# CHECK DOMAIN/PATH AVAILABILITY & DESTDIR
|
|
#=================================================
|
|
|
|
sudo yunohost app checkurl "${domain}${path}" -a "$app" \
|
|
|| exit 1
|
|
|
|
DESTDIR="/var/www/${app}"
|
|
[[ -d "$DESTDIR" ]] && ynh_die \
|
|
"The destination directory '${DESTDIR}' already exists.\
|
|
You should safely delete it before installing this app."
|
|
|
|
#=================================================
|
|
# STORE SETTINGS FROM MANIFEST
|
|
#=================================================
|
|
|
|
ynh_app_setting_set $app domain $domain
|
|
ynh_app_setting_set $app path $path
|
|
ynh_app_setting_set $app is_public $is_public
|
|
ynh_app_setting_set $app author $author
|
|
|
|
#=================================================
|
|
# SET SSOWAT RULES
|
|
#=================================================
|
|
|
|
[[ $is_public -eq 1 ]] \
|
|
&& ynh_app_setting_set "$app" unprotected_uris "/"
|
|
|
|
#=================================================
|
|
# INSTALL PIP/PELICAN/MARKDOWN PACKAGES
|
|
#=================================================
|
|
|
|
sudo apt-get install python-pip
|
|
pip install pelican markdown
|
|
mkdir -p ${DESTDIR}/www
|
|
|
|
#=================================================
|
|
# COPY AND SET NGINX CONFIGURATION
|
|
#=================================================
|
|
|
|
nginx_conf="/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
|
sed -i "s@{PATH}@${path}@g" ../conf/nginx.conf
|
|
sed -i "s@{LOCATION}@${path:-/}@g" ../conf/nginx.conf
|
|
sed -i "s@{DESTDIR}@${DESTDIR}@g" ../conf/nginx.conf
|
|
sed -i "s@{POOLNAME}@${app}@g" ../conf/nginx.conf
|
|
sudo cp ../conf/nginx.conf "$nginx_conf"
|
|
|
|
#=================================================
|
|
# COPY AND SET PHP-FPM CONFIGURATION
|
|
#=================================================
|
|
|
|
phpfpm_conf="/etc/php5/fpm/pool.d/${app}.conf"
|
|
sed -i "s@{POOLNAME}@${app}@g" ../conf/php-fpm.conf
|
|
sed -i "s@{DESTDIR}@${DESTDIR}@g" ../conf/php-fpm.conf
|
|
sudo cp ../conf/php-fpm.conf "$phpfpm_conf"
|
|
|
|
#=================================================
|
|
# RELOAD SERVICES
|
|
#=================================================
|
|
|
|
sudo systemctl reload php5-fpm
|
|
sudo systemctl reload nginx
|
|
|
|
#=================================================
|
|
# POST-INSTALATION
|
|
#=================================================
|
|
|
|
# cd ${DESTDIR}/www
|
|
# printf '\n"Default title"\n"${author}"\ny\n"${domain}"\n\n\n\n\n\n\n\n\n\n\n\n' | pelican-quickstart
|
|
# pelican -s pelicanconf.py
|