# xivo-fetchfw

[![Build Status](https://travis-ci.org/xivo-pbx/xivo-fetchfw.png?branch=master)](https://travis-ci.org/xivo-pbx/xivo-fetchfw)

A simple "out-of-control" package manager in python.

fetchfw main goal is to provide installation/upgrade/uninstallation of packages for which the main content is not
redistributable.

The common usage is that you have some files downloadable over the internet which you want to be able to download,
possibly apply some filters over them
(extract a zip file, exclude some directories) and then copy the result on a specific path of your filesystem, keeping
information about which files have been created in the process so you can remove them later.

That said, you can also use it as a simple, general-purpose, package manager.

It's tied to [xivo-provd-plugins](https://gitlab.com/xivo.solutions/xivo-provd-plugins)

## Run tests

setup

```bash
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt -r test-requirements.txt
```

then

```bash
tox
```

or

```bash
python3 -m unittest
```

## Follow the logs on a running xivo

```bash
tail -f /var/log/xivo-provd*.log
```

## usage

in the webi under `configuration>provisionning`  
in general, set the url according to <https://documentation.xivo.solutions/en/2024.10/ipbx_configuration/provisioning/basic_configuration.html#alternative-plugins-repository> with a 2 instead of the 1 for addons/testing repos  
reload and download your firmwares in `plugins` tab.  
