diff --git a/README.md b/README.md
index 03591c7..6c955ee 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ In addition to this, you are able to run original game discs (CDs) from RetroArc
RetroArch has advanced features like shaders, netplay, rewinding, next-frame response times, runahead, machine translation, blind accessibility features, and more!
-**Shipped version:** 1.15.0~ynh2
+**Shipped version:** 1.15.0~ynh3
**Demo:** https://web.libretro.com/
@@ -30,21 +30,6 @@ RetroArch has advanced features like shaders, netplay, rewinding, next-frame res
![Screenshot of Retroarch Web Player](./doc/screenshots/ozone-main-menu.jpg)
-## Disclaimers / important information
-
-### Use Shared ROMs library
-
-Although you can upload a ROM at runtime, retroarch may have access to the ROMs you already have on your server:
-
-* Games are located in `/opt/yunohost/retroarch/assets/cores`. A symbolic link is created to this folder in `/home/yunohost.multimedia/share/Games`, so that you can place your games from here
-* cores have to be indexed to work : script `/opt/yunohost/retroarch/indexer.sh` run every 5 minutes to index all games in `opt/yunohost/retroarch/assets/cores`
-
-### Limitations
-
-* Cannot save game, in fact, cannot write at all... so configuration is lost each time you start again
-* No user management
-* Some core are listed but not implemented : they do not work, the issue is from the upstream app.
-
## Documentation and resources
* Official app website:
diff --git a/README_fr.md b/README_fr.md
index b17a3dd..1356af7 100644
--- a/README_fr.md
+++ b/README_fr.md
@@ -22,7 +22,7 @@ In addition to this, you are able to run original game discs (CDs) from RetroArc
RetroArch has advanced features like shaders, netplay, rewinding, next-frame response times, runahead, machine translation, blind accessibility features, and more!
-**Version incluse :** 1.15.0~ynh2
+**Version incluse :** 1.15.0~ynh3
**Démo :** https://web.libretro.com/
@@ -30,20 +30,6 @@ RetroArch has advanced features like shaders, netplay, rewinding, next-frame res
![Capture d’écran de Retroarch Web Player](./doc/screenshots/ozone-main-menu.jpg)
-## Avertissements / informations importantes
-
-### Bibliothèque partagée
-
-Même si vous pouvez uploader une ROM depuis l'application, RetroArch peut accéder à celle déjà sur votre serveur:
-* Les jeux sont situés dans `/opt/yunohost/retroarch/assets/cores`. Un lien symbolique est créé vers `/home/yunohost.multimedia/share/Games` de façon à ce que vous puissiez les y mettre facilement.
-* Les cores doivent être indexés pour fonctionner : le script `/opt/yunohost/retroarch/indexer.sh` tourne toutes les 5 minutes pour indexer tous les jeux dans `opt/yunohost/retroarch/assets/cores`
-
-### Limitations
-
-* On ne peut pas sauvegarder. En fait, on ne peut pas écrire dans les fichiers du tout, donc la configuration est perdue à chaque fois...
-* Pas de gestion d'utilisateurs
-* Certains cores sont listés mais ne sont pas implémentés : ils ne fonctionnent donc pas, le problème vient de l'application elle même.
-
## Documentations et ressources
* Site officiel de l’app :
diff --git a/check_process b/check_process
deleted file mode 100644
index 97ba922..0000000
--- a/check_process
+++ /dev/null
@@ -1,25 +0,0 @@
-;; Test complet
- ; Manifest
- domain="domain.tld"
-# path="/retroarch"
-# admin="john"
- is_public=1
- ; Checks
- pkg_linter=1
- setup_sub_dir=1
- setup_root=1
- setup_nourl=0
- setup_private=1
- setup_public=1
- upgrade=1
- upgrade=1 from_commit=626e71c417ceb1b2481751fd5e2b0373c2b1b927
- backup_restore=1
- multi_instance=0
- change_url=1
-;;; Options
-Email=misterl56@hotmail.com
-Notification=none
-;;; Upgrade options
- ; commit=CommitHash
- name=Name and date of the commit.
- manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass&port=666&
diff --git a/conf/app.src b/conf/app.src
deleted file mode 100644
index fd9f6d8..0000000
--- a/conf/app.src
+++ /dev/null
@@ -1,6 +0,0 @@
-SOURCE_URL=https://buildbot.libretro.com/stable/1.15.0/emscripten/RetroArch.7z
-SOURCE_SUM=ce4f8319850545478d9b18cb103de0234fc36a1b50788c82cfb0ca308e793914
-SOURCE_SUM_PRG=sha256sum
-SOURCE_FORMAT=7z
-SOURCE_FILENAME=retroarch.7z
-SOURCE_EXTRACT=false
diff --git a/conf/indexer.sh b/conf/indexer.sh
index 2c14573..187e6bd 100644
--- a/conf/indexer.sh
+++ b/conf/indexer.sh
@@ -15,15 +15,15 @@ source _common.sh
#=================================================
app=__APP__
-final_path=$(ynh_app_setting_get --app=$app --key=final_path)
+install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#=================================================
# Update the index
#=================================================
ynh_use_nodejs
-cd $final_path/assets/frontend/bundle/
+cd $install_dir/assets/frontend/bundle/
../../../indexer > .index-xhr
-cd $final_path/assets/cores
+cd $install_dir/assets/cores
../../indexer > .index-xhr
diff --git a/conf/nginx.conf b/conf/nginx.conf
index 38e7e49..34e5264 100644
--- a/conf/nginx.conf
+++ b/conf/nginx.conf
@@ -2,7 +2,7 @@
location __PATH__/ {
# Path to source
- alias __FINALPATH__/ ;
+ alias __INSTALL_DIR__/ ;
# Include SSOWAT user panel.
diff --git a/conf/retroarch.cron b/conf/retroarch.cron
index fa09e6e..5b77ca3 100644
--- a/conf/retroarch.cron
+++ b/conf/retroarch.cron
@@ -1,2 +1,2 @@
#This script will update the core index every 5 minutes so that they are available in retroarch
-*/5 * * * * root __FINAL_PATH__/indexer.sh > /dev/null 2>&1
+*/5 * * * * root __INSTALL_DIR__/indexer.sh > /dev/null 2>&1
diff --git a/doc/DISCLAIMER.md b/doc/ADMIN.md
similarity index 95%
rename from doc/DISCLAIMER.md
rename to doc/ADMIN.md
index da64a34..360f6d2 100644
--- a/doc/DISCLAIMER.md
+++ b/doc/ADMIN.md
@@ -9,4 +9,4 @@ Although you can upload a ROM at runtime, retroarch may have access to the ROMs
* Cannot save game, in fact, cannot write at all... so configuration is lost each time you start again
* No user management
-* Some core are listed but not implemented : they do not work, the issue is from the upstream app.
+* Some core are listed but not implemented : they do not work, the issue is from the upstream app.
\ No newline at end of file
diff --git a/doc/DISCLAIMER_fr.md b/doc/ADMIN_fr.md
similarity index 100%
rename from doc/DISCLAIMER_fr.md
rename to doc/ADMIN_fr.md
diff --git a/manifest.json b/manifest.json
deleted file mode 100644
index 787d095..0000000
--- a/manifest.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "name": "Retroarch Web Player",
- "id": "retroarch",
- "packaging_format": 1,
- "description": {
- "en": "Emulate videogames system and play videogames through your web browser",
- "fr": "Emulez des consoles de jeux et jouer à ces jeux vidéos dans votre explorateur web"
- },
- "version": "1.15.0~ynh2",
- "url": "http://www.retroarch.com/",
- "upstream": {
- "license": "GPL-3.0-or-later",
- "website": "http://www.retroarch.com/",
- "demo": "https://web.libretro.com/",
- "admindoc": "https://docs.libretro.com/",
- "userdoc": "https://docs.libretro.com/",
- "code": "https://github.com/libretro/RetroArch"
- },
- "license": "GPL-3.0-or-later",
- "maintainer": {
- "name": "Krakinou",
- "email": "misterl56@hotmail.com"
- },
- "requirements": {
- "yunohost": ">= 11.1.15"
- },
- "multi_instance": false,
- "services": [
- "nginx"
- ],
- "arguments": {
- "install": [
- {
- "name": "domain",
- "type": "domain"
- },
- {
- "name": "path",
- "type": "path",
- "example": "/retroarch",
- "default": "/retroarch"
- },
- {
- "name": "is_public",
- "type": "boolean",
- "default": true,
- "help": {
- "en": "Yes will allow everyone to access the app without login to yunohost instance first",
- "fr": "Oui autorisera n'importe qui à accéder à l'application sans s'identifier dans Yunohost"
- }
- }
- ]
- }
-}
diff --git a/manifest.toml b/manifest.toml
new file mode 100644
index 0000000..e02c0b0
--- /dev/null
+++ b/manifest.toml
@@ -0,0 +1,64 @@
+packaging_format = 2
+
+id = "retroarch"
+name = "Retroarch Web Player"
+description.en = "Emulate videogames system and play videogames through your web browser"
+description.fr = "Emulez des consoles de jeux et jouer à ces jeux vidéos dans votre explorateur web"
+
+version = "1.15.0~ynh3"
+
+maintainers = ["Krakinou"]
+
+[upstream]
+license = "GPL-3.0-or-later"
+website = "http://www.retroarch.com/"
+demo = "https://web.libretro.com/"
+admindoc = "https://docs.libretro.com/"
+userdoc = "https://docs.libretro.com/"
+code = "https://github.com/libretro/RetroArch"
+
+[integration]
+yunohost = ">= 11.1.18"
+architectures = "all"
+multi_instance = false
+ldap = "not_relevant"
+sso = "not_relevant"
+disk = "1G"
+ram.build = "150M"
+ram.runtime = "50M"
+
+[install]
+ [install.domain]
+ # this is a generic question - ask strings are automatically handled by Yunohost's core
+ type = "domain"
+
+ [install.path]
+ # this is a generic question - ask strings are automatically handled by Yunohost's core
+ type = "path"
+ default = "/retroarch"
+
+ [install.init_main_permission]
+ help.en = "Yes will allow everyone to access the app without login to yunohost instance first"
+ help.fr = "Oui autorisera n'importe qui à accéder à l'application sans s'identifier dans Yunohost"
+ type = "group"
+ default = "visitors"
+
+[resources]
+ [resources.sources]
+
+ [resources.sources.main]
+ url = "https://buildbot.libretro.com/stable/1.15.0/emscripten/RetroArch.7z"
+ sha256 = "ce4f8319850545478d9b18cb103de0234fc36a1b50788c82cfb0ca308e793914"
+ format = "whatever"
+ in_subdir = true
+ extract = false
+
+ [resources.system_user]
+
+ [resources.install_dir]
+
+ [resources.permissions]
+ main.url = "/"
+
+ [resources.apt]
+ packages = "p7zip"
diff --git a/scripts/_common.sh b/scripts/_common.sh
index 3e8a58d..6605f76 100644
--- a/scripts/_common.sh
+++ b/scripts/_common.sh
@@ -5,7 +5,7 @@
#=================================================
# dependencies used by the app
-pkg_dependencies="p7zip"
+#REMOVEME? pkg_dependencies="p7zip"
nodejs_version=10
diff --git a/scripts/backup b/scripts/backup
index d43ba24..3327f7f 100755
--- a/scripts/backup
+++ b/scripts/backup
@@ -6,27 +6,9 @@
# IMPORT GENERIC HELPERS
#=================================================
-# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers
-#=================================================
-# MANAGE SCRIPT FAILURE
-#=================================================
-
-# Exit if an error occurs during the execution of the script
-ynh_abort_if_errors
-
-#=================================================
-# LOAD SETTINGS
-#=================================================
-ynh_print_info --message="Loading installation settings..."
-
-app=$YNH_APP_INSTANCE_NAME
-
-final_path=$(ynh_app_setting_get --app=$app --key=final_path)
-domain=$(ynh_app_setting_get --app=$app --key=domain)
-
#=================================================
# DECLARE DATA AND CONF FILES TO BACKUP
#=================================================
@@ -36,7 +18,7 @@ ynh_print_info --message="Declaring files to be backed up..."
# BACKUP THE APP MAIN DIR
#=================================================
-ynh_backup --src_path="$final_path"
+ynh_backup --src_path="$install_dir"
#=================================================
# BACKUP THE NGINX CONFIGURATION
diff --git a/scripts/change_url b/scripts/change_url
index a4f70a9..d76cdb7 100644
--- a/scripts/change_url
+++ b/scripts/change_url
@@ -9,58 +9,6 @@
source _common.sh
source /usr/share/yunohost/helpers
-#=================================================
-# RETRIEVE ARGUMENTS
-#=================================================
-
-old_domain=$YNH_APP_OLD_DOMAIN
-old_path=$YNH_APP_OLD_PATH
-
-new_domain=$YNH_APP_NEW_DOMAIN
-new_path=$YNH_APP_NEW_PATH
-
-app=$YNH_APP_INSTANCE_NAME
-
-#=================================================
-# LOAD SETTINGS
-#=================================================
-ynh_script_progression --message="Loading installation settings..." --weight=1
-
-# Needed for helper "ynh_add_nginx_config"
-final_path=$(ynh_app_setting_get --app=$app --key=final_path)
-
-#=================================================
-# BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP
-#=================================================
-ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..." --weight=10
-
-# Backup the current version of the app
-ynh_backup_before_upgrade
-ynh_clean_setup () {
- # Remove the new domain config file, the remove script won't do it as it doesn't know yet its location.
- ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf"
-
- # Restore it if the upgrade fails
- ynh_restore_upgradebackup
-}
-# Exit if an error occurs during the execution of the script
-ynh_abort_if_errors
-
-#=================================================
-# CHECK WHICH PARTS SHOULD BE CHANGED
-#=================================================
-
-change_domain=0
-if [ "$old_domain" != "$new_domain" ]
-then
- change_domain=1
-fi
-
-change_path=0
-if [ "$old_path" != "$new_path" ]
-then
- change_path=1
-fi
#=================================================
# STANDARD MODIFICATIONS
@@ -69,41 +17,7 @@ fi
#=================================================
ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1
-nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf
+ynh_change_url_nginx_config
-# Change the path in the NGINX config file
-if [ $change_path -eq 1 ]
-then
- # Make a backup of the original NGINX config file if modified
- ynh_backup_if_checksum_is_different --file="$nginx_conf_path"
- # Set global variables for NGINX helper
- domain="$old_domain"
- path_url="$new_path"
- # Create a dedicated NGINX config
- ynh_add_nginx_config
-fi
-
-# Change the domain for NGINX
-if [ $change_domain -eq 1 ]
-then
- # Delete file checksum for the old conf file location
- ynh_delete_file_checksum --file="$nginx_conf_path"
- mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf
- # Store file checksum for the new config file location
- ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf"
-fi
-
-#=================================================
-# GENERIC FINALISATION
-#=================================================
-# RELOAD NGINX
-#=================================================
-ynh_script_progression --message="Reloading NGINX web server..." --weight=1
-
-ynh_systemd_action --service_name=nginx --action=reload
-
-#=================================================
-# END OF SCRIPT
-#=================================================
ynh_script_progression --message="Change of URL completed for $app" --last
diff --git a/scripts/install b/scripts/install
index c3ef6e1..bdc4014 100755
--- a/scripts/install
+++ b/scripts/install
@@ -9,41 +9,6 @@
source _common.sh
source /usr/share/yunohost/helpers
-#=================================================
-# MANAGE SCRIPT FAILURE
-#=================================================
-
-# Exit if an error occurs during the execution of the script
-ynh_abort_if_errors
-
-#=================================================
-# RETRIEVE ARGUMENTS FROM THE MANIFEST
-#=================================================
-
-domain=$YNH_APP_ARG_DOMAIN
-path_url=$YNH_APP_ARG_PATH
-is_public=$YNH_APP_ARG_IS_PUBLIC
-app=$YNH_APP_INSTANCE_NAME
-
-#=================================================
-# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
-#=================================================
-ynh_script_progression --message="Validating installation parameters..." --weight=1
-
-final_path=/opt/yunohost/$app
-test ! -e "$final_path" || ynh_die --message="This path already contains a folder"
-
-# Register (book) web path
-ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url
-
-#=================================================
-# STORE SETTINGS FROM MANIFEST
-#=================================================
-ynh_script_progression --message="Storing installation settings..." --weight=1
-
-ynh_app_setting_set --app=$app --key=domain --value=$domain
-ynh_app_setting_set --app=$app --key=path --value=$path_url
-
#=================================================
# INSTALL DEPENDENCIES
#=================================================
@@ -53,27 +18,23 @@ ynh_install_nodejs --nodejs_version=$nodejs_version
ynh_use_nodejs
ynh_npm install -g coffeescript
-ynh_install_app_dependencies $pkg_dependencies
-
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
ynh_script_progression --message="Setting up source files..." --weight=60
-ynh_app_setting_set --app=$app --key=final_path --value=$final_path
-# Download, check integrity, uncompress and patch the source from app.src
# uncompress and patch done manually as 7z format is not supported
-ynh_setup_source --dest_dir="$final_path"
+ynh_setup_source --dest_dir="$install_dir"
#7z archive not handled by ynh and no way to strip component, have to move it manually
-7zr x $final_path/retroarch.7z -o$final_path
-mv $final_path/retroarch/* $final_path/
-ynh_secure_remove --file="$final_path/retroarch.7z"
-ynh_secure_remove --file="$final_path/retroarch"
+7zr x $install_dir/main -o$install_dir
+mv $install_dir/retroarch/* $install_dir/
+ynh_secure_remove --file="$install_dir/main"
+ynh_secure_remove --file="$install_dir/retroarch"
-touch $final_path/analytics.js #https://github.com/libretro/RetroArch/issues/4539#issuecomment-473345195
+touch $install_dir/analytics.js #https://github.com/libretro/RetroArch/issues/4539#issuecomment-473345195
#Get the indexer as exe so that folder w/ ROMs can be indexed
-chmod +x $final_path/indexer
+chmod +x $install_dir/indexer
#=================================================
#SETTING MULTIMEDIA DIRECTORY
@@ -81,17 +42,17 @@ chmod +x $final_path/indexer
ynh_script_progression --message="Setting up Multimedia directory..." --weight=9
ynh_multimedia_build_main_dir
-mkdir -p $final_path/assets/cores/Game
-ynh_multimedia_addfolder --source_dir="$final_path/assets/cores/Game" --dest_dir="/share/Game"
-ynh_add_config --template="../conf/README.GAME" --destination="$final_path/assets/cores/Game/README"
-chmod 666 $final_path/assets/cores/Game/README
+mkdir -p $install_dir/assets/cores/Game
+ynh_multimedia_addfolder --source_dir="$install_dir/assets/cores/Game" --dest_dir="/share/Game"
+ynh_add_config --template="../conf/README.GAME" --destination="$install_dir/assets/cores/Game/README"
+chmod 666 $install_dir/assets/cores/Game/README
# SETUP CRON FILE FOR INDEXER
#setup indexer bash script
-ynh_add_config --template="../conf/indexer.sh" --destination="$final_path/indexer.sh"
-chown www-data: $final_path/indexer.sh
-chmod 744 $final_path/indexer.sh
+ynh_add_config --template="../conf/indexer.sh" --destination="$install_dir/indexer.sh"
+chown www-data: $install_dir/indexer.sh
+chmod 744 $install_dir/indexer.sh
#setup cron file
cron_path="/etc/cron.d/$app"
@@ -104,7 +65,6 @@ chmod 644 "$cron_path"
ynh_script_progression --message="Configuring NGINX web server..." --weight=3
#backup & Update nginx MIME type so wasm mime type is recognized
-
if [ !$(grep wasm /etc/nginx/mime.types) ]; then
ynh_print_info "/etc/nginx/mime.types saved as /etc/nginx/mime.types.$app"
cp /etc/nginx/mime.types /etc/nginx/mime.types.$app
@@ -115,25 +75,10 @@ fi
# Create a dedicated nginx config
ynh_add_nginx_config
-### For security reason, any app should set the permissions to www-data: before anything else.
-### Then, if write authorization is needed, any access should be given only to directories
-### that really need such authorization.
-
# Set permissions to app files
-chown -R www-data: $final_path
+chown -R www-data:multimedia $install_dir
# Requested so that multimedia group can see the Game folder : all parent folder should be readable by others
-chmod 751 $final_path
-
-#=================================================
-# SETUP SSOWAT
-#=================================================
-ynh_script_progression --message="Configuring permissions..." --weight=1
-
-# Make app public if necessary
-if [ $is_public -eq 1 ]
-then
- ynh_permission_update --permission "main" --add visitors
-fi
+chmod 750 $install_dir
#=================================================
# SETUP INDEX
@@ -143,19 +88,11 @@ fi
#Indexer will list the available ROM and cores for Retroarch
ynh_script_progression --message="Setup Indexer for content..." --weight=3
-cd $final_path/assets/frontend/bundle/
+cd $install_dir/assets/frontend/bundle/
../../../indexer > .index-xhr
-cd $final_path/assets/cores
+cd $install_dir/assets/cores
../../indexer > .index-xhr
-#=================================================
-# RELOAD NGINX
-#=================================================
-ynh_script_progression --message="Reloading NGINX web server..." --weight=1
-
-ynh_systemd_action --service_name=nginx --action=reload
-
-
#=================================================
# END OF SCRIPT
#=================================================
diff --git a/scripts/remove b/scripts/remove
index c438dea..82774e6 100755
--- a/scripts/remove
+++ b/scripts/remove
@@ -9,16 +9,6 @@
source _common.sh
source /usr/share/yunohost/helpers
-#=================================================
-# LOAD SETTINGS
-#=================================================
-ynh_script_progression --message="Loading installation settings..." --weight=1
-
-app=$YNH_APP_INSTANCE_NAME
-
-domain=$(ynh_app_setting_get --app=$app --key=domain)
-final_path=$(ynh_app_setting_get --app=$app --key=final_path)
-
#=================================================
# REMOVE DEPENDENCIES
#=================================================
@@ -28,13 +18,6 @@ ynh_script_progression --message="Removing dependencies..." --weight=7
ynh_use_nodejs
ynh_npm uninstall -g coffeescript
ynh_remove_nodejs
-ynh_remove_app_dependencies
-
-#=================================================
-# REMOVE CRONJOB
-#=================================================
-
-ynh_secure_remove --file="/etc/cron.d/$app"
#=================================================
# REMOVE MULTIMEDIA SYMBOLIC LINK
@@ -43,14 +26,8 @@ ynh_script_progression --message="Removing Game folder..." --weight=1
# Remove the app directory securely
ynh_secure_remove --file="/home/yunohost.multimedia/share/Game"
+ynh_secure_remove --file="/etc/cron.d/$app"
-#=================================================
-# REMOVE APP MAIN DIR
-#=================================================
-ynh_script_progression --message="Removing app main directory..." --weight=1
-
-# Remove the app directory securely
-ynh_secure_remove --file="$final_path"
#=================================================
# REMOVE NGINX CONFIGURATION
diff --git a/scripts/restore b/scripts/restore
index 1087b35..2118172 100755
--- a/scripts/restore
+++ b/scripts/restore
@@ -10,31 +10,6 @@
source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers
-#=================================================
-# MANAGE SCRIPT FAILURE
-#=================================================
-
-# Exit if an error occurs during the execution of the script
-ynh_abort_if_errors
-
-#=================================================
-# LOAD SETTINGS
-#=================================================
-ynh_script_progression --message="Loading settings..." --weight=1
-
-app=$YNH_APP_INSTANCE_NAME
-
-domain=$(ynh_app_setting_get --app=$app --key=domain)
-path_url=$(ynh_app_setting_get --app=$app --key=path)
-final_path=$(ynh_app_setting_get --app=$app --key=final_path)
-
-#=================================================
-# CHECK IF THE APP CAN BE RESTORED
-#=================================================
-ynh_script_progression --message="Validating restoration parameters..." --weight=1
-
-test ! -d $final_path \
- || ynh_die --message="There is already a directory: $final_path "
#=================================================
# STANDARD RESTORATION STEPS
@@ -58,16 +33,7 @@ fi
#=================================================
ynh_script_progression --message="Restoring the app main directory..." --weight=1
-ynh_restore_file --origin_path="$final_path"
-
-#=================================================
-# RESTORE USER RIGHTS
-#=================================================
-
-# Restore permissions on app files
-chown -R www-data: $final_path
-# Requested so that multimedia group can see the Game folder : all parent folder should be readable by others
-chmod 751 $final_path
+ynh_restore_file --origin_path="$install_dir"
#=================================================
# SPECIFIC RESTORATION
@@ -78,9 +44,8 @@ ynh_script_progression --message="Reinstalling dependencies..." --weight=5
# Define and install dependencies
#Dependencies are not really required as this is just to unzip the 7z file
-ynh_install_app_dependencies $pkg_dependencies
#However, npm IS required to run the coffeescript
-ynh_install_nodejs --nodejs_version=10
+ynh_install_nodejs --nodejs_version=$nodejs_version
ynh_use_nodejs
ynh_npm install -g coffeescript
@@ -90,10 +55,19 @@ ynh_npm install -g coffeescript
ynh_script_progression --message="Setting up Multimedia directory..." --weight=5
ynh_multimedia_build_main_dir
-mkdir -p $final_path/assets/cores/Game
-ynh_multimedia_addfolder --source_dir="$final_path/assets/cores/Game" --dest_dir="/share/Game"
-ynh_add_config --template="../conf/README.GAME" --destination="$final_path/assets/cores/Game/README"
-chmod 666 $final_path/assets/cores/Game/README
+mkdir -p $install_dir/assets/cores/Game
+ynh_multimedia_addfolder --source_dir="$install_dir/assets/cores/Game" --dest_dir="/share/Game"
+ynh_add_config --template="../conf/README.GAME" --destination="$install_dir/assets/cores/Game/README"
+chmod 666 $install_dir/assets/cores/Game/README
+
+#=================================================
+# RESTORE USER RIGHTS
+#=================================================
+
+# Restore permissions on app files
+chown -R www-data:multimedia $install_dir
+# Requested so that multimedia group can see the Game folder : all parent folder should be readable by others
+chmod 750 $install_dir
#=================================================
# RESTORE THE CRON FILE
diff --git a/scripts/upgrade b/scripts/upgrade
index 1bb66ff..6140a46 100755
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -9,17 +9,6 @@
source _common.sh
source /usr/share/yunohost/helpers
-#=================================================
-# LOAD SETTINGS
-#=================================================
-ynh_script_progression --message="Loading installation settings..." --weight=1
-
-app=$YNH_APP_INSTANCE_NAME
-
-domain=$(ynh_app_setting_get --app=$app --key=domain)
-path_url=$(ynh_app_setting_get --app=$app --key=path)
-final_path=$(ynh_app_setting_get --app=$app --key=final_path)
-
#=================================================
# CHECK VERSION
#=================================================
@@ -27,19 +16,17 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path)
upgrade_type=$(ynh_check_app_version_changed)
#=================================================
-# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
+# ENSURE DOWNWARD COMPATIBILITY
#=================================================
-ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=10
-
-# Backup the current version of the app
-ynh_backup_before_upgrade
-ynh_clean_setup () {
- # Restore it if the upgrade fails
- ynh_restore_upgradebackup
-}
-# Exit if an error occurs during the execution of the script
-ynh_abort_if_errors
+ynh_script_progression --message="Downward Compatibility checks..." --weight=1
+#move from /opt/yunohost to /var/www : symbolic link will be remade by multimedia dir
+if ynh_compare_current_package_version --comparison lt --version 1.15.0~ynh3; then
+ if [ -L /home/yunohost.multimedia/share/Game ]; then
+ #ynh_secure_remove --file="/home/yunohost.multimedia/share/Game"
+ rm /home/yunohost.multimedia/share/Game #ynh_secure_remove does not remove link
+ fi
+fi
#=================================================
# STANDARD UPGRADE STEPS
#=================================================
@@ -51,24 +38,23 @@ then
ynh_script_progression --message="Upgrading source files..." --weight=5
# Download, check integrity, uncompress and patch the source from app.src
- ynh_setup_source --dest_dir="$final_path"
+ ynh_setup_source --dest_dir="$install_dir"
#7z archive not handled by ynh and no way to strip component, have to move it manually
- 7zr x $final_path/retroarch.7z -o$final_path
+ 7zr x $install_dir/main -o$install_dir
#mv not working as target directory is not empty
- cp -R $final_path/retroarch/* $final_path/
- ynh_secure_remove --file="$final_path/retroarch.7z"
- ynh_secure_remove --file="$final_path/retroarch"
- touch $final_path/analytics.js #https://github.com/libretro/RetroArch/issues/4539#issuecomment-473345195
+ cp -R $install_dir/retroarch/* $install_dir/
+ ynh_secure_remove --file="$install_dir/main"
+ touch $install_dir/analytics.js #https://github.com/libretro/RetroArch/issues/4539#issuecomment-473345195
#Get the indexer as exe so that folder w/ ROMs can be indexed
- chmod +x $final_path/indexer
+ chmod +x $install_dir/indexer
fi
# SETUP CRON FILE FOR INDEXER
#setup indexer bash script
-ynh_add_config --template="../conf/indexer.sh" --destination="$final_path/indexer.sh"
-chown www-data: $final_path/indexer.sh
-chmod 744 $final_path/indexer.sh
+ynh_add_config --template="../conf/indexer.sh" --destination="$install_dir/indexer.sh"
+chown www-data: $install_dir/indexer.sh
+chmod 744 $install_dir/indexer.sh
#setup cron file
cron_path="/etc/cron.d/$app"
ynh_add_config --template="../conf/retroarch.cron" --destination="$cron_path"
@@ -81,10 +67,10 @@ chmod 644 "$cron_path"
ynh_script_progression --message="Setting up Multimedia directory..." --weight=4
ynh_multimedia_build_main_dir
-mkdir -p $final_path/assets/cores/Game
-ynh_multimedia_addfolder --source_dir="$final_path/assets/cores/Game" --dest_dir="/share/Game"
-ynh_add_config --template="../conf/README.GAME" --destination="$final_path/assets/cores/Game/README"
-chmod 666 $final_path/assets/cores/Game/README
+mkdir -p $install_dir/assets/cores/Game
+ynh_multimedia_addfolder --source_dir="$install_dir/assets/cores/Game" --dest_dir="/share/Game"
+ynh_add_config --template="../conf/README.GAME" --destination="$install_dir/assets/cores/Game/README"
+chmod 666 $install_dir/assets/cores/Game/README
#=================================================
# NGINX CONFIGURATION
@@ -101,7 +87,6 @@ ynh_script_progression --message="Upgrading dependencies..." --weight=20
# Define and install dependencies
#Dependencies are not really required as this is just to unzip the 7z file
-ynh_install_app_dependencies $pkg_dependencies
#However, npm IS required to run the coffeescript
ynh_install_nodejs --nodejs_version=$nodejs_version
ynh_use_nodejs
@@ -113,16 +98,9 @@ ynh_npm install -g coffeescript
# Set permissions on app files
#=================================================
-chown -R www-data: $final_path
+chown -R www-data:multimedia $install_dir
# Requested so that multimedia group can see the Game folder : all parent folder should be readable by others
-chmod 751 $final_path
-
-#=================================================
-# RELOAD NGINX
-#=================================================
-ynh_script_progression --message="Reloading NGINX web server..." --weight=1
-
-ynh_systemd_action --service_name=nginx --action=reload
+chmod 750 $install_dir
#=================================================
# END OF SCRIPT
diff --git a/tests.toml b/tests.toml
new file mode 100644
index 0000000..0539bbf
--- /dev/null
+++ b/tests.toml
@@ -0,0 +1,4 @@
+test_format = 1.0
+
+[default]
+ test_upgrade_from.b7eb8ba.name = "1.15.0~ynh2"