====== Client-side functionality ======
This is for Argentum 2, which is included with Halyde 3.0.0+. For the original Argentum, see [[ag1|Argentum 1]].
This article is about how Argentum keeps track of packages on the client side. For how to use Argentum, see [[manual:ag2|the Argentum manual]].
All client-side Argentum package data is stored in the ``/ag2/pkg`` folder on the user's machine.
Each package gets a JSON file in ``/ag2/pkg`` named ``/ag2/pkg/package-name.json`` (``package-name`` being the package's name). Said JSON file is structured like this:
{
"name": "test-package-name",
"version": "1.2.3",
"autoInstalled": false,
"dependencies": [
"dependency1",
"dependency2=1.2.3"
],
"conflicts": [
"conflict1",
"conflict2"
],
"files": [
"file1",
"halyde/apps/file2",
],
"directories": [
"packageDir",
"packageDir/something"
],
"config": [
"/packageDir/something/config.json"
]
}
* ``name`` is the package's name;
* ``version`` is set to the package's version;
* ``autoInstalled`` is whether the package was installed as a dependency or not;
* ``dependencies`` is a list of packages the package depends on (optional) ([[avs|Advanced Versioning Syntax]] may be used here);
* ``conflicts`` is a list of packages the package conflicts with and cannot be installed alongside (optional) ([[avs|Advanced Versioning Syntax]] may be used here);
* ``files`` is a list of files that were downloaded when the package was installed (optional);
* ``directories`` is a list of directories that were created when the package was installed (optional);
* ``config`` is a list of config files for the package which will not be changed upon updating. When removing the package, the user will be asked whether to remove the config files or not.
Note that type is not included here. This is because package groups and virtual packages are not stored on the client side. Instead, when uninstalling a group or virtual package, the list of packages is fetched from the server.
Argentum 1 used to have functionality where files could get overwritten and the previous files would get stored once that happens. They would then be restored once the package is removed. This functionality was **removed in Argentum 2** because it was unnecessary and could cause major conflicts. Thus now, it is advised not to intentionally overwrite files in packages at all.