From 9ba8fbe9c7e9b99f1099464fa27ebcd0af5d6863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Sun, 5 Sep 2021 10:38:14 +0200 Subject: [PATCH] Fix (#9) * Cleaning up --- README.md | 58 +++++++++++--------- README_fr.md | 54 +++++++++--------- check_process | 6 +- conf/nginx.conf | 1 - doc/DESCRIPTION.md | 11 ++++ doc/DESCRIPTION_fr.md | 11 ++++ {sources => doc/screenshots}/Screenshot.png | Bin manifest.json | 11 +++- scripts/install | 29 ++++------ scripts/restore | 27 ++++----- scripts/upgrade | 19 ++++--- 11 files changed, 129 insertions(+), 98 deletions(-) create mode 100644 doc/DESCRIPTION.md create mode 100644 doc/DESCRIPTION_fr.md rename {sources => doc/screenshots}/Screenshot.png (100%) diff --git a/README.md b/README.md index cea20c9..9fde686 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ + + # Slingcode for YunoHost [![Integration level](https://dash.yunohost.org/integration/slingcode.svg)](https://dash.yunohost.org/appci/app/slingcode) ![](https://ci-apps.yunohost.org/ci/badges/slingcode.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/slingcode.maintain.svg) @@ -5,44 +10,43 @@ *[Lire ce readme en français.](./README_fr.md)* -> *This package allow you to install Slingcode quickly and simply on a YunoHost server. -If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.* +> *This package allows you to install Slingcode quickly and simply on a YunoHost server. +If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* ## Overview Slingcode is a code editor contained in a single HTML file. Therefore, it has no server component, so all of your data is stored in your browser's cache. However, it is still possible to make web apps, run them, export them, and even share them using peer-to-peer. -**Shipped version:** 0.2.2 +### Features: + +- You can make, run, and share web apps with it. +- You don't need any complicated tools to use it, just a web browser. +- You don't need a server, hosting, or an SSL certificate to run the web apps. +- You can put Slingcode on a web site, run it from a USB stick, laptop, or phone, and it doesn't need an internet connection to work. +- You can "add to home screen" in your phone's browser to easily access your library of programs on the go. +- You can share apps peer-to-peer over WebTorrent. +- It's private. You only share what you choose. + + +**Shipped version:** 0.2.2~ynh3 + +**Demo:** https://slingcode.net/slingcode.html ## Screenshots -![](sources/Screenshot.png) +![](./doc/screenshots/Screenshot.png) -## Demo +## Documentation and resources -* [Official demo](https://slingcode.net/slingcode.html) +* Official app website: https://slingcode.net/ +* Official user documentation: https://slingcode.net/screencasts.html +* Upstream app code repository: https://github.com/chr15m/slingcode +* YunoHost documentation for this app: https://yunohost.org/app_slingcode +* Report a bug: https://github.com/YunoHost-Apps/slingcode_ynh/issues -## Documentation +## Developer info - * Official documentation: https://slingcode.net/screencasts.html - -#### Supported architectures - -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/slingcode.svg)](https://ci-apps.yunohost.org/ci/apps/slingcode/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/slingcode.svg)](https://ci-apps-arm.yunohost.org/ci/apps/slingcode/) - -## Links - - * Report a bug: https://github.com/YunoHost-Apps/slingcode_ynh/issues - * App website: https://slingcode.net/ - * Upstream app repository: https://github.com/chr15m/slingcode - * YunoHost website: https://yunohost.org/ - ---- - -## Developers info - -Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/slingcode_ynh/tree/testing). +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/slingcode_ynh/tree/testing). To try the testing branch, please proceed like that. ``` @@ -50,3 +54,5 @@ sudo yunohost app install https://github.com/YunoHost-Apps/slingcode_ynh/tree/te or sudo yunohost app upgrade slingcode -u https://github.com/YunoHost-Apps/slingcode_ynh/tree/testing --debug ``` + +**More info regarding app packaging:** https://yunohost.org/packaging_apps \ No newline at end of file diff --git a/README_fr.md b/README_fr.md index a05b409..3f51791 100644 --- a/README_fr.md +++ b/README_fr.md @@ -1,44 +1,44 @@ # Slingcode pour YunoHost -[![Integration level](https://dash.yunohost.org/integration/slingcode.svg)](https://dash.yunohost.org/appci/app/slingcode) ![](https://ci-apps.yunohost.org/ci/badges/slingcode.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/slingcode.maintain.svg) -[![Install Slingcode with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=slingcode) +[![Niveau d'intégration](https://dash.yunohost.org/integration/slingcode.svg)](https://dash.yunohost.org/appci/app/slingcode) ![](https://ci-apps.yunohost.org/ci/badges/slingcode.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/slingcode.maintain.svg) +[![Installer Slingcode avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=slingcode) -*[Read this Slingcode in english.](./README.md)* +*[Read this readme in english.](./README.md)* +*[Lire ce readme en français.](./README_fr.md)* -> *Ce package vous permet d’installer Slingcode rapidement et simplement sur un serveur YunoHost. -Si vous n’avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l’installer et en profiter.* +> *Ce package vous permet d'installer Slingcode rapidement et simplement sur un serveur YunoHost. +Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* -## Vue d’ensemble +## Vue d'ensemble Slingcode est un éditeur de code contenu dans un unique fichier HTML. Il n'a pas de composant serveur, ce qui signifie que toutes vos données sont stockées dans le cache de votre navigateur. Cependant, il est toujours possible de créer des applications Web, de les exécuter, de les exporter et même de les partager en peer-to-peer. -**Version incluse :** 0.2.2 +### Caractéristiques: -## Captures d’écran +- Vous pouvez créer, exécuter et partager des applications Web avec. +- Vous n'avez pas besoin d'outils compliqués pour l'utiliser, juste un navigateur Web. +- Vous n'avez pas besoin d'un serveur, d'un hébergement ou d'un certificat SSL pour exécuter les applications Web. +- Vous pouvez mettre Slingcode sur un site Web, l'exécuter à partir d'une clé USB, d'un ordinateur portable ou d'un téléphone, et il n'a pas besoin d'une connexion Internet pour fonctionner. +- Vous pouvez "ajouter à l'écran d'accueil" dans le navigateur de votre téléphone pour accéder facilement à votre bibliothèque de programmes lors de vos déplacements. +- Vous pouvez partager des applications peer-to-peer sur WebTorrent. +- C'est privé. Vous ne partagez que ce que vous choisissez. -![](sources/Screenshot.png) -## Démo +**Version incluse :** 0.2.2~ynh3 -* [Démo officielle](https://slingcode.net/slingcode.html) +**Démo :** https://slingcode.net/slingcode.html -## Documentation +## Captures d'écran - * Documentation officielle : https://slingcode.net/screencasts.html +![](./doc/screenshots/Screenshot.png) -#### Architectures supportées +## Documentations et ressources -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/slingcode.svg)](https://ci-apps.yunohost.org/ci/apps/slingcode/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/slingcode.svg)](https://ci-apps-arm.yunohost.org/ci/apps/slingcode/) - -## Liens - - * Signaler un bug : https://github.com/YunoHost-Apps/slingcode_ynh/issues - * Site de l'application : https://slingcode.net/ - * Dépôt de l’application principale : https://github.com/chr15m/slingcode - * Site web YunoHost : https://yunohost.org/ - ---- +* Site officiel de l'app : https://slingcode.net/ +* Documentation officielle utilisateur : https://slingcode.net/screencasts.html +* Dépôt de code officiel de l'app : https://github.com/chr15m/slingcode +* Documentation YunoHost pour cette app : https://yunohost.org/app_slingcode +* Signaler un bug : https://github.com/YunoHost-Apps/slingcode_ynh/issues ## Informations pour les développeurs @@ -47,6 +47,8 @@ Merci de faire vos pull request sur la [branche testing](https://github.com/Yuno Pour essayer la branche testing, procédez comme suit. ``` sudo yunohost app install https://github.com/YunoHost-Apps/slingcode_ynh/tree/testing --debug -or +ou sudo yunohost app upgrade slingcode -u https://github.com/YunoHost-Apps/slingcode_ynh/tree/testing --debug ``` + +**Plus d'infos sur le packaging d'applications :** https://yunohost.org/packaging_apps \ No newline at end of file diff --git a/check_process b/check_process index 3d0a95e..54dfc44 100644 --- a/check_process +++ b/check_process @@ -1,9 +1,9 @@ ;; Test complet auto_remove=1 ; Manifest - domain="domain.tld" (DOMAIN) - path="/path" (PATH) - is_public=1 (PUBLIC|public=1|private=0) + domain="domain.tld" + path="/path" + is_public=1 ; Checks pkg_linter=1 setup_sub_dir=1 diff --git a/conf/nginx.conf b/conf/nginx.conf index 681bfeb..333a99b 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -15,5 +15,4 @@ location __PATH__/ { # Include SSOWAT user panel. #include conf.d/yunohost_panel.conf.inc; - } diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md new file mode 100644 index 0000000..6e9e054 --- /dev/null +++ b/doc/DESCRIPTION.md @@ -0,0 +1,11 @@ +Slingcode is a code editor contained in a single HTML file. Therefore, it has no server component, so all of your data is stored in your browser's cache. However, it is still possible to make web apps, run them, export them, and even share them using peer-to-peer. + +### Features: + +- You can make, run, and share web apps with it. +- You don't need any complicated tools to use it, just a web browser. +- You don't need a server, hosting, or an SSL certificate to run the web apps. +- You can put Slingcode on a web site, run it from a USB stick, laptop, or phone, and it doesn't need an internet connection to work. +- You can "add to home screen" in your phone's browser to easily access your library of programs on the go. +- You can share apps peer-to-peer over WebTorrent. +- It's private. You only share what you choose. diff --git a/doc/DESCRIPTION_fr.md b/doc/DESCRIPTION_fr.md new file mode 100644 index 0000000..12572fb --- /dev/null +++ b/doc/DESCRIPTION_fr.md @@ -0,0 +1,11 @@ +Slingcode est un éditeur de code contenu dans un unique fichier HTML. Il n'a pas de composant serveur, ce qui signifie que toutes vos données sont stockées dans le cache de votre navigateur. Cependant, il est toujours possible de créer des applications Web, de les exécuter, de les exporter et même de les partager en peer-to-peer. + +### Caractéristiques: + +- Vous pouvez créer, exécuter et partager des applications Web avec. +- Vous n'avez pas besoin d'outils compliqués pour l'utiliser, juste un navigateur Web. +- Vous n'avez pas besoin d'un serveur, d'un hébergement ou d'un certificat SSL pour exécuter les applications Web. +- Vous pouvez mettre Slingcode sur un site Web, l'exécuter à partir d'une clé USB, d'un ordinateur portable ou d'un téléphone, et il n'a pas besoin d'une connexion Internet pour fonctionner. +- Vous pouvez "ajouter à l'écran d'accueil" dans le navigateur de votre téléphone pour accéder facilement à votre bibliothèque de programmes lors de vos déplacements. +- Vous pouvez partager des applications peer-to-peer sur WebTorrent. +- C'est privé. Vous ne partagez que ce que vous choisissez. diff --git a/sources/Screenshot.png b/doc/screenshots/Screenshot.png similarity index 100% rename from sources/Screenshot.png rename to doc/screenshots/Screenshot.png diff --git a/manifest.json b/manifest.json index cd8f5ba..c01769c 100644 --- a/manifest.json +++ b/manifest.json @@ -6,15 +6,22 @@ "en": "Browser based code editor in a single HTML file", "fr": "Éditeur de code en ligne contenu dans un seul fichier HTML" }, - "url": "https://github.com/chr15m/slingcode", + "url": "https://slingcode.net/", "version": "0.2.2~ynh3", + "upstream": { + "license": "MIT", + "website": "https://slingcode.net/", + "demo": "https://slingcode.net/slingcode.html", + "userdoc": "https://slingcode.net/screencasts.html", + "code": "https://github.com/chr15m/slingcode" + }, "license": "MIT", "maintainer": { "name": "eric_G", "email": "" }, "requirements": { - "yunohost": ">= 4.1.7" + "yunohost": ">= 4.2.4" }, "multi_instance": true, "services": [ diff --git a/scripts/install b/scripts/install index d307674..b4b9642 100755 --- a/scripts/install +++ b/scripts/install @@ -46,6 +46,14 @@ ynh_script_progression --message="Storing installation settings..." --weight=2 ynh_app_setting_set --app=$app --key=domain --value=$domain ynh_app_setting_set --app=$app --key=path --value=$path_url +#================================================= +# CREATE DEDICATED USER +#================================================= +ynh_script_progression --message="Configuring system user..." --weight=1 + +# Create a system user +ynh_system_user_create --username=$app --home_dir="$final_path" + #================================================= # STANDARD MODIFICATIONS #================================================= @@ -58,6 +66,10 @@ ynh_app_setting_set --app=$app --key=final_path --value=$final_path mkdir -p $final_path cp -a ../sources/slingcode.html $final_path/slingcode.html +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + #================================================= # NGINX CONFIGURATION #================================================= @@ -66,23 +78,6 @@ ynh_script_progression --message="Configuring NGINX web server..." --weight=2 # Create a dedicated NGINX config ynh_add_nginx_config -#================================================= -# CREATE DEDICATED USER -#================================================= -ynh_script_progression --message="Configuring system user..." --weight=1 - -# Create a system user -ynh_system_user_create --username=$app - -#================================================= -# GENERIC FINALIZATION -#================================================= -# SECURE FILES AND DIRECTORIES -#================================================= - -# Set permissions to app files -chown -R $app: $final_path - #================================================= # SETUP SSOWAT #================================================= diff --git a/scripts/restore b/scripts/restore index 2018d2a..33381f2 100644 --- a/scripts/restore +++ b/scripts/restore @@ -31,8 +31,6 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) #================================================= ynh_script_progression --message="Validating restoration parameters..." --weight=1 -ynh_webpath_available --domain=$domain --path_url=$path_url \ - || ynh_die --message="Path not available: ${domain}${path_url}" test ! -d $final_path \ || ynh_die --message="There is already a directory: $final_path " @@ -44,6 +42,14 @@ test ! -d $final_path \ ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" +#================================================= +# RECREATE THE DEDICATED USER +#================================================= +ynh_script_progression --message="Recreating the dedicated system user..." --weight=1 + +# Create the dedicated user (if not existing) +ynh_system_user_create --username=$app --home_dir="$final_path" + #================================================= # RESTORE THE APP MAIN DIR #================================================= @@ -51,20 +57,9 @@ ynh_script_progression --message="Restoring $app main directory..." --weight=2 ynh_restore_file --origin_path="$final_path" -#================================================= -# RECREATE THE DEDICATED USER -#================================================= -ynh_script_progression --message="Recreating the dedicated system user..." --weight=1 - -# Create the dedicated user (if not existing) -ynh_system_user_create --username=$app - -#================================================= -# RESTORE USER RIGHTS -#================================================= - -# Restore permissions on app files -chown -R $app: $final_path +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" #================================================= # GENERIC FINALIZATION diff --git a/scripts/upgrade b/scripts/upgrade index 4a36960..d5331b8 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -43,6 +43,14 @@ if ynh_legacy_permissions_exists; then ynh_app_setting_delete --app=$app --key=is_public fi +#================================================= +# CREATE DEDICATED USER +#================================================= +ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 + +# Create a dedicated user (if not existing) +ynh_system_user_create --username=$app --home_dir="$final_path" + #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= @@ -70,6 +78,10 @@ then cp -a ../sources/slingcode.html $final_path/slingcode.html fi +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + #================================================= # NGINX CONFIGURATION #================================================= @@ -78,13 +90,6 @@ ynh_script_progression --message="Upgrading NGINX web server configuration..." - # Create a dedicated NGINX config ynh_add_nginx_config -#================================================= -# SECURE FILES AND DIRECTORIES -#================================================= - -# Set permissions on app files -chown -R $app: $final_path - #================================================= # RELOAD NGINX #=================================================