Skip to main content

Module lifecycle

Module lifecycle 

Source
Expand description

Commandes de cycle de vie : update, upgrade, uninstall.

Le module racine regroupe les helpers purs et testables (cible, comparaison de versions, noms d’assets, vérification SHA-256, gestion du bloc .bashrc). Les effets de bord (réseau, système de fichiers) vivent dans les sous-modules :

  • github : interrogation de l’API GitHub Releases ;
  • update : « y a-t-il une nouvelle version ? » (aucune installation) ;
  • upgrade : téléchargement + vérification + remplacement du binaire ;
  • signature : vérification optionnelle des signatures Sigstore (cosign) ;
  • uninstall : retrait du binaire / bloc .bashrc, purge optionnelle.

Sécurité : HTTPS par défaut, SHA-256 obligatoire avant toute extraction, aucune exécution de script distant. Les données (history.db, config.toml, sauvegardes) ne sont jamais touchées par upgrade, et seulement par uninstall --purge après confirmation et sauvegarde.

Modules§

github
Interrogation de l’API GitHub Releases.
signature
Vérification optionnelle des signatures Sigstore (cosign) des assets de release.
uninstall
mnemo uninstall : retire le binaire et l’intégration shell ; conserve les données par défaut. --purge supprime aussi config, base et sauvegardes, après sauvegarde et confirmation explicite.
update
mnemo update : vérifie la disponibilité d’une nouvelle version. Par défaut, n’installe rien ; en terminal interactif, propose d’enchaîner mnemo upgrade, et l’option --upgrade lance directement l’installation.
upgrade
mnemo upgrade : télécharge la dernière release (ou une version donnée), vérifie son intégrité SHA-256, sauvegarde les données puis remplace le binaire de façon atomique.

Functions§

asset_names_for_version
Noms des assets de release pour un tag et une cible donnés : (archive .tar.gz, fichier .sha256).
compare_versions
Compare deux versions sémantiques simples (vX.Y.Z). Les versions illisibles sont considérées « égales » (prudence : pas de fausse mise à jour).
current_version
Version courante du binaire, préfixée par v (ex. v0.5.0).
normalize_tag
Garantit le préfixe v sur un tag (0.5.0 -> v0.5.0, v0.5.0 inchangé).
parse_sha256_file
Extrait la somme hexadécimale d’un fichier .sha256 au format sha256sum ("<hex> <nom de fichier>"), ou d’une ligne ne contenant que le hex.
parse_version
Découpe une version vX.Y.Z (suffixe de pré-release ignoré) en triplet numérique. Renvoie None si le format est inexploitable.
sha256_hex
Calcule la somme SHA-256 d’un contenu et la rend en hexadécimal minuscule.
target_triple
Triplet cible utilisé pour nommer les assets de release.
update_available
Vrai si latest est strictement plus récent que current.
verify_sha256
Vérifie que data correspond à la somme attendue (hex, casse ignorée).