canopy ist ein kompaktes und flexibles Kommandozeilenprogramm, welches JSON, XML und YAML Dateien in einander umwandeln kann.
Die Verwendung des Tools erfolgt durch das Verketten sogenannter Filter. Filter sind Module welche die Dateien laden, speichern und manipulieren können. Ein Filter nimmt bestehenden Inhalt entgegen und führt Operationen an diesem durch. Das Ergebnis kann dann einem nächsten Filter übergeben werden.
Folgende FIlter stehen ab Werk zur Verfügung:
Modul | Parameter | Beschreibung |
---|---|---|
LoadJson |
Dateipfad (Optional) | Lädt eine vorliegende JSON-Datei in das Programm zur Weiterverarbeitung. Der Dateipfad kann auch in form einer URL erfolgen. Wird kein Dateipfad übergeben, wird der Inhalt aus der Standard-Eingabe (stdin) übernommen. |
LoadXml |
Dateipfad (Optional) | Lädt eine vorliegende XML-Datei in das Programm zur Weiterverarbeitung. Der Dateipfad kann auch in form einer URL erfolgen. Wird kein Dateipfad übergeben, wird der Inhalt aus der Standard-Eingabe (stdin) übernommen. |
LoadYaml |
Dateipfad (Optional) | Lädt eine vorliegende YAML-Datei in das Programm zur Weiterverarbeitung. Der Dateipfad kann auch in form einer URL erfolgen Wird kein Dateipfad übergeben, wird der Inhalt aus der Standard-Eingabe (stdin) übernommen. |
StoreJson |
Dateipfad (Optional) | Speichert eine vorliegende JSON-Datei in das Programm zur Weiterverarbeitung. Wird kein Dateipfad übergeben, wird der Inhalt aus der Standard-Ausgabe (stdout) übernommen. |
StoreXml |
Dateipfad (Optional) | Speichert eine vorliegende XML-Datei in das Programm zur Weiterverarbeitung. Wird kein Dateipfad übergeben, wird der Inhalt aus der Standard-Ausgabe (stdout) übernommen. |
StoreYaml |
Dateipfad (Optional) | Speichert eine vorliegende YAML-Datei in das Programm zur Weiterverarbeitung. Wird kein Dateipfad übergeben, wird der Inhalt aus der Standard-Ausgabe (stdout) übernommen. |
Encrypt |
Passwort | Verschlüsselt alle Values des Datenbaumes mit dem übergebenen Passwort. Die Values liegen dann im Base64-Format vor. |
Decrypt |
Passwort | Entschlüsselt alle Values eines verschlüsselten Datenbaums mit dem übergebenen Passwort. |
Extract |
Name des zu extrahierenden Knotens | Extrahiert alle Knoten mit dem übergebenen Namen in einen neuen Baum. |
Beim Aufruf der Programms über die Kommandozeile werden Parameter übergeben, welche dem Programm beschreiben wie es die Dateien zu manipulieren und abzuspeichern hat.
Ein Beispiel für einen Programmaufruf lautet wie folgt:
canopy LoadJson:"./example.json" StoreXml:"./new.json"
Dieses Programm lädt nun die Module LoadJson
und StoreJson
. Modulen können Parameter übergeben werden, wie in diesem Beispiel der Dateipfad. Die Module werden nun in der Reinfolge abgearbeitet, in welcher diese an das Programm übergeben wurden. Zunächst wird die Datei ./example.json
von LoadJson
eingelesen und dann wird diese vom Modul StoreXml
abgespeichert.
Module lassen sich Beliebig anwenden und verketten. So lässt sich mit dem Aufruf
canopy LoadJson:"./example.json" Encrypt:"password123" StoreJSON:"./encrypted.json StoreXML:"./encrypted.xml"
LoadJson:"./example.json"
lädt die Datei./example.json
Encrypt:"password123"
verschlüsselt alle Values der Baumstruktur. Die Daten liegen dann Verschlüsselt im base64-Format vor.StoreJson:"./encrypted.json
speichert das Ergebnis in einer JSON-DateiStoreXml:"./encrypted.xml
speichert das Ergebnis zusätzlich in einer XML-Datei