Listr2

Create beautiful CLI interfaces via easy and logical-to-implement task lists that feel alive and interactive.

Site officiel : https://listr2.kilic.dev/


Journaux liées à cette note :

Journal du samedi 02 novembre 2024 à 12:20 #golang, #Java, #tui

Je cherche un équivalent de Listr2 en Golang, mais pour le moment je n'ai rien trouvé 😟.

Je viens de poster ce message sur le Subreddit Golang : I'm looking for an equivalent of listr2: beautiful CLI interfaces via easy and logical to implement task lists that feel lively and interactive

Subject: I'm looking for an equivalent of listr2: beautiful CLI interfaces via easy and logical to implement task lists that feel lively and interactive

Hi,

Do you know a Golang equivalent of the Javascript listr2 library?

My goal is to create a cli tool with the same rendering as demonstrated in the screencast on https://listr2.kilic.dev

Listr2:

Create beautiful CLI interfaces via easy and logical-to-implement task lists that feel alive and interactive.

Best regards,
Stéphane

Pour l'instant, Listr est mon choix par défaut pour implémenter un système affichant la progression d'un traitement en ligne de commande #javascript, ##sklein-pkm-engine, #librairie, #choix-technologique, #cli, #tui, #library

Je souhaite afficher une barre de progression d'importation dans le script import-to-es-database.js du projet sklein-pkm-engine.

Je souhaite afficher deux lignes :

  • Première ligne : barre de progression d'importation ;
  • Seconde ligne : action en cours de traitement.

Je viens d'étudier les librairies blessed, ora et cli-progress et je pense que cli-progress est celle qui conviendra de mieux pour atteindre mon objectif.

Par contre, cli-progress ne semble pas supporter la présence d'un retour à la ligne dans le paramètre format :

const bar = new cliProgress.SingleBar({
    format: "Progress | {bar} | {percentage}% || {value}/{total} items\nProcessing: {currentAction}",
    barCompleteChar: "\u2588",
    barIncompleteChar: "\u2591",
    hideCursor: true,
    clearOnComplete: false,
    linewrap: false
});

Finalement, non satisfait de cli-progress, je suis parti vers la #library listr2 (https://github.com/listr2/listr2).

Voici le résultat :

Voici le code source de ma mise en œuvre de Listr2 : https://github.com/stephane-klein/sklein-pkm-engine/blob/9bca16344dca075c595ceebb82b91bbbd3a267ff/import-to-es-database.js#L49.

J'ai trouvé la librairie très agréable à utiliser.

Pour l'instant, Listr sera mon choix par défaut pour implémenter un système affichant la progression d'un traitement en ligne de commande.