Packaging d’application
## Commandes pratiques
Il est conseillé d’utiliser les commandes pratiques.
#### Shell
À partir de YunoHost 2.4, des [helpers en shell](https://dev.yunohost.org/projects/yunohost/repository/yunohost/revisions/unstable/show/data/helpers.d) sont disponible.
Pour pouvoir les utiliser il faut ajouter les lignes suivantes :
```bash
# Source app helpers
. /usr/share/yunohost/helpers
```
#### Moulinette
La CLI [moulinette](/moulinette) fournit quelques outils pour faciliter le packaging :
```bash
sudo yunohost app checkport
```
Cette commande vérifie le port et retourne une erreur si le port est déjà utilisé.
```bash
sudo yunohost app setting [ -v ]
```
C'est la commande la plus importante. Elle vous permet de stocker des réglages d’une application spécifique, afin de les réutiliser plus tard (typiquement dans le script ```upgrade```) ou pour que YunoHost puisse se configurer automatiquement (par exemple pour le SSO).
La commande définit la valeur si vous ajoutez ```-v ```, sinon la récupère.
** Quelques paramètres pratiques **
```skipped_uris```
Indique à SSOwat de ne pas s’occuper de la liste d’uris fournies séparées par des virgules. Celles-ci ne seront donc pas protégées et ne pourront pas utiliser le mécanisme d’authentification centralisée.
```protected_uris```
Protège la liste d’uris fournies séparées par des virgules. Seul un utilisateur connecté y aura accès.
```unprotected_uris```
Indique à SSOwat de ne pas s’occuper de la liste d’uris fournies séparées par des virgules que si l’utilisateur est connecté. Ces uris sont donc publiquement accessibles mais peuvent utiliser le mécanisme d’authentification centralisée.
Il existe aussi `skipped_regex`, `protected_regex`, `unprotected_uris`, `unprotected_regex`.
**Attention** : il est nécessaire de lancer `yunohost app ssowatconf` pour appliquer les effets. Les uris seront alors converties en urls et écrites dans le fichier /etc/ssowat/conf.json.
Exemple :
```yunohost app setting myapp unprotected_urls -v "/"```
```yunohost app ssowatconf```
Ces commandes vont désactiver le SSO sur la racine de l’aplication soit domain.tld/myapp, ceci est utile pour une application publique.
```bash
sudo yunohost app checkurl -a
```
Cette commande est utile pour les applications web et vous permet d’être sûr que le chemin n’est pas utilisé par une autre application. Si le chemin est inutilisé, elle le « réserve ».
**Remarque** : ne pas préfixer par `http://` ou par `https://` dans le ``.
```bash
sudo yunohost app initdb [ -d ] [ -s ] [ -p ] user
```
Cette commande crée une base de donnée `db_name` et un utilisateur `user` associé à cette base, possédant les permissions nécessaires à manipuler la base de donnée.
Si vous ne définissez pas de nom de base de donnée avec `-d `, `user` est utilisé comme nom de base de donnée.
Si vous ne définissez pas de mot de passe avec `-p`, la commande en génère un et le retourne.
Si vous ajoutez un fichier SQL avec `-s`, la commande initialise la base de donnée avec les commandes SQL du fichier.
```bash
sudo yunohost app ssowatconf
```
Cette commande régénère la configuration du SSO. Vous devez l’appeler à la fin des scripts lorsque vous packagez une application Web.