Application packaging ### Helpers It's recommended to use helpers. #### Shell From YunoHost 2.4, [shell helpers](https://github.com/YunoHost/yunohost/tree/unstable/data/apps/helpers.d) are available. To use them, you need to add following lines in the shell scripts: ```bash # Source app helpers . /usr/share/yunohost/apps/helpers ```
#### Moulinette The CLI [moulinette](/moulinette) provides a few tools to make the packager's work easier: ```bash sudo yunohost app checkport ```
This helper checks the port and returns an error if the port is already in use.

```bash sudo yunohost app setting [ -v ] ```
This is the most important helper of YunoHost. It allows you to store some settings for a specific app, in order to be either reused afterward or used for YunoHost configuration (**e.g.** for the SSO).

It sets the value if you append ```-v ```, and gets it otherwise.

** Some useful settings **

```skipped_uris```

Remove the protection on the uris list provided separated by commas.

```protected_uris```

Protects the uris list provided separated by commas. Only logged in users will have access.

There are also `skipped_regex`, `protected_regex`, `unprotected_uris`, `unprotected_regex`.

**Be careful** : you must run `yunohost app ssowatconf` to apply the effect. URIs will be converted into URLs and written to the file /etc/ssowat/conf.json.

Example:
```yunohost app setting myapp unprotected_urls -v "/"```
```yunohost app ssowatconf```
These commands will disable the SSO on the root of the aplication like domain.tld/myapp This is useful for public application.

```bash sudo yunohost app checkurl -a ```
This helper is useful for web apps and allows you to be sure that the web path is not taken by another app. If not, it "reserves" the path.

**Note**: do not prepend `http://` or `https://` to the ``.

```bash sudo yunohost app initdb [ -p ] [ -s ] ```
This helper creates a MySQL database. If you do not append a password, it generates one and returns it. If you append a SQL file, it initializes your database with the SQL statements inside.

```bash sudo yunohost app ssowatconf ```
This helper reloads the SSO configuration. You have to call it at the end of the script when you are packaging a web app.