mirror of https://github.com/JOJ0/synadm.git
61 lines
2.0 KiB
ReStructuredText
61 lines
2.0 KiB
ReStructuredText
|
|
Scripting Examples
|
|
==================
|
|
|
|
This chapter should give some ideas on how ``synadm`` commands can be combinend
|
|
to achieve functionality that is not directly covered by a single ``synadm``
|
|
command.
|
|
|
|
A handy command line tool to filter and postprocess json data is ``jq``. Some of
|
|
the examples in this chapter use it. Most Linux distros have it readily
|
|
available in their main repos. Read `jq`s exhaustive man page to learn what's
|
|
possible.
|
|
|
|
Piping through ``jq`` prints out formatted and valid JSON data:
|
|
|
|
.. code-block:: shell
|
|
|
|
$ synadm -o json media list -u testuser1 | jq
|
|
{
|
|
"media": [
|
|
{
|
|
"media_id": "zdkkcUmbHPoPKkvCyFMTDNOB",
|
|
"media_type": "application/pdf",
|
|
"media_length": 3235323,
|
|
"upload_name": "some_document.pdf",
|
|
"created_ts": "2021-04-16 07:59:10",
|
|
"last_access_ts": null,
|
|
"quarantined_by": "@admin:example.org",
|
|
"safe_from_quarantine": false
|
|
},
|
|
{
|
|
"media_id": "ZTxHWcvUUBSuSTNixMGEzeyj",
|
|
"media_type": "application/pdf",
|
|
"media_length": 8875938,
|
|
"upload_name": "another_document.pdf",
|
|
"created_ts": "2021-04-16 07:58:54",
|
|
"last_access_ts": null,
|
|
"quarantined_by": null,
|
|
"safe_from_quarantine": false
|
|
}
|
|
],
|
|
"total": 2
|
|
}
|
|
|
|
The top-level JSON object contains a JSON array ``media`` which can be looped
|
|
throuh with the ``jq`` syntax ``.media[]``. To access specific properties of each
|
|
array item we could use a shell loop like this:
|
|
|
|
.. code-block:: shell
|
|
|
|
$ for ID in `synadm -o json media list -u testuser1 | jq '.media[].media_id'`; do echo $ID; done
|
|
"zdkkcUmbHPoPKkvCyFMTDNOB"
|
|
"ZTxHWcvUUBSuSTNixMGEzeyj"
|
|
|
|
The ID's we get could be passed to another ``synadm`` command, for example to
|
|
remove those from quarantine.
|
|
|
|
.. code-block:: shell
|
|
|
|
$ for ID in `synadm -o json media list -u testuser1 | jq '.media[].media_id'`; do synadm media unquarantine -i $ID; done
|