Aller au contenu

Go Releaser – avec solutions

Implémentez un outil en ligne de commande qui utilise les fonctionnalités suivantes :

  • Go Releaser pour compiler et packager votre programme
  • GitHub Actions ou GitLab CI/CD pour automatiser le processus de test, de build, et de déploiement
  • Release GitHub ou GitLab pour distribuer votre programme
  • Cobra pour gérer les arguments en ligne de commande
  • pre-commit pour automatiser les vérifications avant chaque commit (aussi pour le CI/CD)
  • REUSE pour gérer les licences
  • GoLint pour vérifier la qualité du code

Votre programme doit être installable sur Linux (Debian/RedHat), MacOS (Homebrew) et Windows (Chocolatey). Le dépôt doit contenir un fichier README.md qui explique comment installer et utiliser votre programme (Ceci peut être généré automatiquement avec cobra et avec l’aide de l’IA).

Idées de programme

  • Un programme qui affiche la date et l’heure actuelles dans différents formats
  • Un programme qui affiche le calendrier de l’année ou du mois en cours (similaire à la commande cal sous Linux)
  • Un programme qui donne la capitale d’un pays donné (utilisez la bibliothèque countries)

Vous pouvez vous inspirer du code de webwait comme point de départ.

Note

Go est capable de faire des outils avec une jolie interface texte (TUI). Jetez un œil à la bibliothèque tview, bubbletea ou encore gocui.

Voici quelques exemples de programmes TUI écrits en Go :

et bien sûr aussi :