diff --git a/scripts/_common.sh b/scripts/_common.sh index e4228e7..cfc17c4 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -1,3 +1,5 @@ #!/bin/bash VERSION="1.1.6" + +JAPPIX_SOURCE_URL="https://github.com/jappix/jappix/archive/${VERSION}.tar.gz" diff --git a/scripts/backup b/scripts/backup index cfc71a3..4b7a6c6 100644 --- a/scripts/backup +++ b/scripts/backup @@ -1,5 +1,4 @@ #!/bin/bash -app=jappix # causes the shell to exit if any subcommand or pipeline returns a non-zero status set -e @@ -7,7 +6,7 @@ set -e # Source YNH helpers . /usr/share/yunohost/helpers -app=${!#} +app="jappix" # Retrieve app settings domain=$(sudo yunohost app setting "$app" domain) diff --git a/scripts/install b/scripts/install index f4a41be..953fb34 100644 --- a/scripts/install +++ b/scripts/install @@ -1,61 +1,55 @@ #!/bin/bash +set -e + source ./_common.sh +app="jappix" + # Retrieve arguments domain=$1 -path=$2 +path=${2%/} name=$3 language=$4 # Check domain/path availability -sudo yunohost app checkurl $domain$path -a jappix -if [[ ! $? -eq 0 ]]; then -exit 1 -fi - -# Remove trailing "/" for next commands -path=${path%/} +sudo yunohost app checkurl "${domain}${path}" -a "$app" \ + || exit 1 # Retrieve sources -wget -nv -q -O jappix.tar.gz https://github.com/jappix/jappix/archive/${VERSION}.tar.gz +wget -q -O jappix.tar.gz "$JAPPIX_SOURCE_URL" # Copy files to the right place -final_path=/var/www/jappix -sudo mkdir -p $final_path -sudo tar -C $final_path -xf jappix.tar.gz --strip-components 1 -sudo mkdir -p $final_path/store/conf -sudo cp ../conf/*.xml $final_path/store/conf/ +final_path="/var/www/${app}" +sudo mkdir -p "${final_path}/store/conf" +sudo tar -C "$final_path" -xf jappix.tar.gz --strip-components 1 +sudo cp ../conf/*.xml "${final_path}/store/conf/" # Set permissions to jappix directory -sudo chown -R www-data: $final_path +sudo chown -R www-data: "$final_path" -# Modify Nginx configuration file and copy it to Nginx conf directory -sudo sed -i "s@PATHTOCHANGE2@$path@g" ../conf/nginx.conf +# Set and copy NGINX configuraion +sudo sed -i "s@PATHTOCHANGE2@${path}@g" ../conf/nginx.conf +path=${path:-/} +sudo sed -i "s@PATHTOCHANGE@${path}@g" ../conf/nginx.conf +sudo sed -i "s@ALIASTOCHANGE@${final_path}/@g" ../conf/nginx.conf +sudo cp ../conf/nginx.conf "/etc/nginx/conf.d/${domain}.d/${app}.conf" -if [ -z "$path" ]; then - path="/" -fi +# Validate language +[[ -a "${final_path}/i18n/${language}" ]] \ + || language="en" -sudo ls $final_path/i18n/$language > /dev/null 2>&1 -if [ $? != 0 ]; -then - language="en" -fi +# Store app settings +sudo yunohost app setting "$app" name -v "$name" +sudo yunohost app setting "$app" language -v "$language" -sudo yunohost app setting jappix name -v $name -sudo yunohost app setting jappix language -v $language +# Set Jappix configuration +sudo sed -i "s@PATHTOCHANGE@${path}@g" "${final_path}/store/conf/main.xml" +sudo sed -i "s@PATHTOCHANGE@${path}@g" "${final_path}/store/conf/hosts.xml" +sudo sed -i "s@DOMAINTOCHANGE@${domain}@g" "${final_path}/store/conf/main.xml" +sudo sed -i "s@CHANGELANG@${language}@g" "${final_path}/store/conf/main.xml" +sudo sed -i "s@CHANGENAME@${name}@g" "${final_path}/store/conf/main.xml" +sudo sed -i "s@DOMAINTOCHANGE@${domain}@g" "${final_path}/store/conf/hosts.xml" -sudo sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf -sudo sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf -sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/jappix.conf -sudo sed -i "s@PATHTOCHANGE@$path@g" $final_path/store/conf/main.xml -sudo sed -i "s@PATHTOCHANGE@$path@g" $final_path/store/conf/hosts.xml -sudo sed -i "s@DOMAINTOCHANGE@$domain@g" $final_path/store/conf/main.xml -sudo sed -i "s@CHANGELANG@$language@g" $final_path/store/conf/main.xml -sudo sed -i "s@CHANGENAME@$name@g" $final_path/store/conf/main.xml -sudo sed -i "s@DOMAINTOCHANGE@$domain@g" $final_path/store/conf/hosts.xml - -# Reload Nginx and regenerate SSOwat conf +# Reload services sudo service nginx reload -sudo yunohost app ssowatconf diff --git a/scripts/remove b/scripts/remove index e4d284f..893a4b0 100644 --- a/scripts/remove +++ b/scripts/remove @@ -1,8 +1,13 @@ #!/bin/bash -domain=$(sudo yunohost app setting jappix domain) -sudo rm -rf /var/www/jappix -sudo rm -f /etc/nginx/conf.d/$domain.d/jappix.conf +app="jappix" +# Retrieve arguments +domain=$(sudo yunohost app setting "$app" domain) + +# Remove sources and configuration +sudo rm -rf "/var/www/${app}" +sudo rm -f "/etc/nginx/conf.d/${domain}.d/${app}.conf" + +# Reload services sudo service nginx reload -sudo yunohost app ssowatconf diff --git a/scripts/restore b/scripts/restore index f485e86..66fa81c 100644 --- a/scripts/restore +++ b/scripts/restore @@ -1,22 +1,18 @@ #!/bin/bash -app=jappix # causes the shell to exit if any subcommand or pipeline returns a non-zero status set -e -app=${!#} - -# Retrieve arguments -backup_dir=$1 +app="jappix" # Retrieve old app settings domain=$(sudo yunohost app setting "$app" domain) # Restore sources & data -sudo cp -a "./sources" "/var/www/$app" +sudo cp -a ./sources "/var/www/${app}" -domain=$(sudo yunohost app setting $app domain) -sudo cp -a $"./nginx.conf" "/etc/nginx/conf.d/$domain.d/$app.conf" +# Restore Nginx and YunoHost parameters +sudo cp -a ./nginx.conf "/etc/nginx/conf.d/${domain}.d/${app}.conf" -# Restart webserver +# Reload services sudo service nginx reload diff --git a/scripts/upgrade b/scripts/upgrade index 5c4edaa..245ffe8 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -1,55 +1,50 @@ #!/bin/bash +set -e + source ./_common.sh -# Retrieve arguments -domain=$(sudo yunohost app setting jappix domain) -path=$(sudo yunohost app setting jappix path) -name=$(sudo yunohost app setting jappix name) -language=$(sudo yunohost app setting jappix language) +app="jappix" -if [[ "$name" = "" ]]; -then - name="YunoJappix" -fi -if [[ "$language" = "" ]]; -then - language="en" -fi +# Retrieve arguments +domain=$(sudo yunohost app setting "$app" domain) +path=$(sudo yunohost app setting "$app" path) +name=$(sudo yunohost app setting "$app" name) +language=$(sudo yunohost app setting "$app" language) + +# Set default values +name="${name:-YunoJappix}" +language="${language:-en}" # Remove trailing "/" for next commands path=${path%/} # Retrieve sources -wget -nv -q -O jappix.tar.gz https://github.com/jappix/jappix/archive/${VERSION}.tar.gz +wget -q -O jappix.tar.gz "$JAPPIX_SOURCE_URL" # Copy files to the right place -final_path=/var/www/jappix -sudo mkdir -p $final_path -sudo tar -C $final_path -xf jappix.tar.gz --strip-components 1 -sudo mkdir -p $final_path/store/conf -sudo cp ../conf/*.xml $final_path/store/conf/ +final_path="/var/www/${app}" +sudo mkdir -p "${final_path}/store/conf" +sudo tar -C "$final_path" -xf jappix.tar.gz --strip-components 1 +sudo cp ../conf/*.xml "${final_path}/store/conf/" # Set permissions to jappix directory -sudo chown -R www-data: $final_path +sudo chown -R www-data: "$final_path" -# Modify Nginx configuration file and copy it to Nginx conf directory -sudo sed -i "s@PATHTOCHANGE2@$path@g" ../conf/nginx.conf +# Set and copy NGINX configuraion +sudo sed -i "s@PATHTOCHANGE2@${path}@g" ../conf/nginx.conf +path=${path:-/} +sudo sed -i "s@PATHTOCHANGE@${path}@g" ../conf/nginx.conf +sudo sed -i "s@ALIASTOCHANGE@${final_path}/@g" ../conf/nginx.conf +sudo cp ../conf/nginx.conf "/etc/nginx/conf.d/${domain}.d/${app}.conf" -if [ -z "$path" ]; then - path="/" -fi +# Set Jappix configuration +sudo sed -i "s@PATHTOCHANGE@${path}@g" "${final_path}/store/conf/main.xml" +sudo sed -i "s@PATHTOCHANGE@${path}@g" "${final_path}/store/conf/hosts.xml" +sudo sed -i "s@DOMAINTOCHANGE@${domain}@g" "${final_path}/store/conf/main.xml" +sudo sed -i "s@CHANGELANG@${language}@g" "${final_path}/store/conf/main.xml" +sudo sed -i "s@CHANGENAME@${name}@g" "${final_path}/store/conf/main.xml" +sudo sed -i "s@DOMAINTOCHANGE@${domain}@g" "${final_path}/store/conf/hosts.xml" -sudo sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf -sudo sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf -sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/jappix.conf -sudo sed -i "s@PATHTOCHANGE@$path@g" $final_path/store/conf/main.xml -sudo sed -i "s@PATHTOCHANGE@$path@g" $final_path/store/conf/hosts.xml -sudo sed -i "s@DOMAINTOCHANGE@$domain@g" $final_path/store/conf/main.xml -sudo sed -i "s@CHANGELANG@$language@g" $final_path/store/conf/main.xml -sudo sed -i "s@CHANGENAME@$name@g" $final_path/store/conf/main.xml -sudo sed -i "s@DOMAINTOCHANGE@$domain@g" $final_path/store/conf/hosts.xml - -# Reload Nginx and regenerate SSOwat conf +# Reload services sudo service nginx reload -sudo yunohost app ssowatconf