## Updating apps

To regenerate the nixpkgs nextcloudPackages set, run:

```
./generate.sh
```

After that you can commit and submit the changes in a pull request.

## Adding apps

**Before adding an app and making a pull request to nixpkgs, please first update as described above in a separate commit.**

To extend the nextcloudPackages set, add a new line to the corresponding json
file with the id of the app:

- `nextcloud-apps.json` for apps

The app must be available in the official
[Nextcloud app store](https://apps.nextcloud.com).
The id corresponds to the last part in the app url,
for example `breezedark` for the app with the url
`https://apps.nextcloud.com/apps/breezedark`.

Then regenerate the nixpkgs nextcloudPackages set by running:

```
./generate.sh
```

**Make sure that in this update, only the app added to `nextcloud-apps.json` gets updated.**

After that you can commit and submit the changes in a pull request.

## Usage with the Nextcloud module

The apps will be available in the namespace `nextcloud31Packages.apps` (and for older versions of Nextcloud similarly).
Using it together with the Nextcloud module could look like this:

```
{
  services.nextcloud = {
    enable = true;
    package = pkgs.nextcloud31;
    hostName = "localhost";
    config.adminpassFile = "${pkgs.writeText "adminpass" "hunter2"}";
    extraApps = with pkgs.nextcloud31Packages.apps; {
      inherit mail calendar contacts;
    };
    extraAppsEnable = true;
  };
}
```

Adapt the version number in the Nextcloud package and nextcloudPackages set
according to the Nextcloud version you wish to use. There are several supported
stable Nextcloud versions available in the repository.
