1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/pelican_ynh.git synced 2024-09-03 19:46:35 +02:00
pelican_ynh/scripts/install
2017-07-25 19:58:30 +02:00

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