Subject: Lilypond, git et tag

From: Bernard Barbier <[email-masked]>
Date: Wed, 16 Jun 2021 17:46:58 +0200

Bonjour à tous !

J'aime bien mettre en bas et à droite des partitions que je fais pour 
mes choristes le numéro de version... histoire qu'on ait tous la même 
partition, les erreurs de notes et  d'aurtograff se corrigent petit à 
petit, eh oui !

Un peu du style :

*  date = #(strftime "%d %b %Y" (localtime (current-time)))*

*  copyright=\markup {
     \tiny {
       \fill-line {
         "Transcription Bernard Barbier pour le Petit Chœur Liturgique 
de Saint-Claude de Tassin."
         \concat {"V-1.4 - " \date}}
     }
   }
*

Et comme je fais ça sous git...

J'aimerais bien savoir s'il était possible de récupérer à la compilation 
le tag git par exemple :

*git tag -a v1.4 -m 'V-1.4'*

Merci beaucoup beaucoup et très belle fin de journée à tous !

Bernard.

---

From: "[email-masked]" <[email-masked]>
Date: Wed, 16 Jun 2021 18:49:09 +0200

Bonjour Guillaume,

Je viens de faire un test en scheme, dans un dossier suivi par git, je lance la commande suivante :
	guile -c '(system "git tag")’ 
Et je récupère le tag à l’écran

Je suppose que si tu utilises 
	(system "git tag") 
Tu obtiendras ton tag ;-)

Bon courage, Philippe

> Le 16 juin 2021 à 17:46, Bernard Barbier <[email-masked]> a écrit :
> 
> Bonjour à tous !
> 
> J'aime bien mettre en bas et à droite des partitions que je fais pour mes choristes le numéro de version... histoire qu'on ait tous la même partition, les erreurs de notes et  d'aurtograff se corrigent petit à petit, eh oui !
> 
> Un peu du style : 
> 
>   date = #(strftime "%d %b %Y" (localtime (current-time)))
> 
>   copyright=\markup {
>     \tiny {
>       \fill-line {
>         "Transcription Bernard Barbier pour le Petit Chœur Liturgique de Saint-Claude de Tassin." 
> J'aimerais bien savoir s'il était possible de récupérer à la compilation le tag git par exemple : 
> 
> git tag -a v1.4 -m 'V-1.4'
>

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 17 Jun 2021 22:12:55 +0200

> Tu obtiendras ton tag ;-)

Bonjour,

C'est effectivement l'idée, simplement la fonction system se
contente d'exécuter la commande, sans renvoyer sa sortie. Voici
une solution complète :

\version "2.22"

#(use-modules (ice-9 popen)
               (ice-9 rdelim))

#(define (string-drop-prefix str prefix)
    (if (string-startswith str prefix)
        (string-drop str (string-length prefix))
        str))

#(define-markup-command (git-tag layout props) ()
    (let* ((port (open-input-pipe "git describe --all --abbrev=0"))
           (str (read-line port)))
      (close-pipe port)
      (interpret-markup layout props
        (if (string? str)
            (string-drop-prefix str "tags/")
            "??"))))

\markup \typewriter \git-tag

Cordialement,
Jean

---

From: Bernard Barbier <[email-masked]>
Date: Fri, 18 Jun 2021 12:32:45 +0200

Bonjour et merci,

j'ai bien mon tag.

Si j'arrive pas à le mettre là où je veux,je reposterai !!!

Belle journée,

Bernard.