2 points par GN⁺ 2023-12-10 | 1 commentaires | Partager sur WhatsApp

Résumé du convertisseur JSON JC

  • jc convertit en JSON la sortie d’outils CLI, de types de fichiers et de chaînes génériques afin de la rendre plus facile à parser dans des scripts.
  • Un exemple avec la commande dig permet de voir la sortie convertie au format JSON, qui peut ensuite être retraitée avec des outils comme jq ou jello.
  • Il peut aussi être utilisé comme bibliothèque Python ; dans ce cas, il renvoie à la place de JSON un dictionnaire Python, une liste de dictionnaires ou un itérable paresseux de dictionnaires.

Comment installer le convertisseur JSON JC

  • Installation possible via pip, les dépôts de paquets de l’OS ou le téléchargement de binaires.
  • Des commandes d’installation sont fournies pour plusieurs distributions Linux, macOS et FreeBSD.

Comment utiliser le convertisseur JSON JC

  • Reçoit une entrée transmise via un pipe depuis STDIN et produit sur STDOUT la sortie de la commande précédente au format JSON.
  • Une syntaxe « magique » permet d’ajouter jc devant une commande pour la convertir, ou devant un chemin de fichier /proc.
  • Diverses options de parseur et fonctions de découpage permettent d’ajuster le format de sortie et de traiter des lignes spécifiques.

Caractéristiques du convertisseur JSON JC

  • Fournit des représentations de données par défaut et brutes, et convertit selon le schéma les nombres connus en valeurs JSON int/float.
  • L’option --raw ou le paramètre raw=True permet d’accéder au JSON brut et prétraité.
  • Les parseurs en streaming permettent de traiter efficacement en mémoire de gros volumes de sortie de commandes.

Pourquoi le convertisseur JSON JC est important

  • Les billets de blog et interviews montrent la motivation du projet, qui vise à appliquer la philosophie Unix au XXIe siècle, ainsi que ses cas d’usage.
  • Très utile pour parser la sortie de commandes dans des environnements variés comme les scripts Bash, Ansible, Saltstack, Nornir et FortiSOAR.

Compatibilité du convertisseur JSON JC

  • Certains parseurs fonctionnent indépendamment de la plateforme, tandis que ceux qui convertissent des sorties spécifiques à une plateforme peuvent générer des avertissements de compatibilité.
  • Toutes les informations sur les parseurs sont disponibles avec jc -ap.

Comment contribuer au convertisseur JSON JC

  • Les contributions pour ajouter ou améliorer du code ou des parseurs sont bienvenues ; il est possible de soumettre une pull request en utilisant jc/parsers/foo.py ou jc/parsers/foo_s.py comme modèles.

L’avis de GN⁺

Le point le plus important ici est que jc permet de convertir en JSON la sortie de nombreuses commandes, de types de fichiers et de chaînes, afin de pouvoir les traiter de manière programmatique. Cela aide les développeurs à manipuler les données plus facilement, en particulier lors du scripting dans des environnements Unix et Linux. Cet article est intéressant parce que jc est un outil capable d’améliorer fortement l’automatisation et l’efficacité dans le développement logiciel et l’administration système.

1 commentaires

 
GN⁺ 2023-12-10
Avis Hacker News
  • Résolution du problème de conversion de la sortie de commandes au format JSON sous FreeBSD à l’aide de la bibliothèque libxo

    • La commande ls était prise en charge, mais il existe des cas où cela a été supprimé
    • Ce n’est pas pris en charge par tous les utilitaires
    • PowerShell fournit nativement une sortie structurée
    • La nécessité de standardiser un drapeau --json est également soulevée pour Unix/Linux
  • Expression d’inquiétudes concernant la difficulté de maintenance

    • La maintenance risque d’être difficile en raison de la gestion des versions, des changements de drapeaux de commande, etc.
    • L’usage d’outils --<CMD> peut compliquer les aides/manuels
  • Présentation d’un outil appelé Nushell

    • Une approche qui consiste à fournir des données structurées via le shell lui-même
  • Évaluation positive du fait que les outils CLI prennent en charge une sortie JSON

    • En pratique, c’est bien du JSON, mais souvent complexe ou inutile, ce qui soulève des doutes sur son utilité réelle
  • Avis sur l’utilisation de l’outil jc

    • jc dig example.com devrait être l’usage principal, plutôt que dig example.com | jc --dig
  • Expression d’une préférence pour le fait que toute sortie soit un objet dans PowerShell

    • Cette fonctionnalité manque lors de l’écriture de scripts Bash
  • Expression de respect envers la personne qui assure la maintenance de l’outil jc

  • Question sur la liste des outils de commande Unix modernes qui acceptent l’option --json

    • Il pourrait être utile d’ajouter cette information au dépôt
  • Remarque sur un défaut de conception d’Unix

    • Les programmes en ligne de commande ne renvoient au programme appelant qu’un code de sortie entier
    • Lorsqu’un programme GUI appelle un programme en ligne de commande, il n’obtient que des informations limitées
  • Surprise de voir que textfsm n’a pas été utilisé

    • textfsm est largement utilisé pour analyser la sortie CLI des équipements réseau