#!/bin/bash source ./_common set -eu # Retrieve arguments domain=$1 path=$2 is_public=$3 app=$YNH_APP_INSTANCE_NAME # Source app helpers source /usr/share/yunohost/helpers # Normalize the url path syntax # Handle the slash at the beginning of path and its absence at ending # Return a normalized url path # # example: url_path=$(ynh_normalize_url_path $url_path) # ynh_normalize_url_path example -> /example # ynh_normalize_url_path /example -> /example # ynh_normalize_url_path /example/ -> /example # # usage: ynh_normalize_url_path path_to_normalize # | arg: url_path_to_normalize - URL path to normalize before using it ynh_normalize_url_path () { path=$1 test -n "$path" || ynh_die "ynh_normalize_url_path expect a URL path as first argument and received nothing." if [ "${path:0:1}" != "/" ]; then # If the first character is not a / path="/$path" # Add / at begin of path variable fi if [ "${path:${#path}-1}" == "/" ] && [ ${#path} -gt 1 ]; then # If the last character is a / and that not the only character. path="${path:0:${#path}-1}" # Delete the last character fi echo $path } ynh_normalize_url_path $path # Check domain/path availability sudo yunohost app checkurl "${domain}${path}" -a "$app" \ || ynh_die "Path not available: ${domain}${path}" # Install dependency to convert tracks to a readable format for the browser sudo apt-get update sudo apt-get -y -qq install php5-sqlite # Remove trailing "/" for next commands if [[ ! "$path" == "/" ]]; then path=${path%/} fi # Source YunoHost helpers source /usr/share/yunohost/helpers # Copy files to the right place final_path=/var/www/$app sudo mkdir -p $final_path extract_source $final_path # Files owned by root, www-data can just read sudo chown www-data:www-data $final_path -R sudo chmod 755 $final_path -R # Modify Nginx configuration file and copy it to Nginx conf directory sed -i "s@YNH_WWW_PATH@$path@g" ../conf/nginx.conf sed -i "s@YNH_WWW_ALIAS@$final_path/@g" ../conf/nginx.conf nginxconf=/etc/nginx/conf.d/$domain.d/$app.conf sudo cp ../conf/nginx.conf $nginxconf sudo chown root: $nginxconf sudo chmod 600 $nginxconf ynh_app_setting_set "$app" is_public "$is_public" if [ "$is_public" = "Yes" ]; then ynh_app_setting_set "$app" unprotected_uris "/" fi sudo service nginx reload sudo yunohost app ssowatconf