Ce sont des travaux de compilation classiques non?
Ok, je donne un exemple un peu plus précis. Récemment je voulais générer un graphe dot, dont chaque nœud est une image. Les images devant être générées dynamiquement.
Les outils du shell me servent de liant pour extraire le nom de chaque nœud et y associer l'image que je veux générer
Grâce aux dépendances de make, je génère le fichier povray quivabien (en remplaçant une chaine de texte dans mon source) :
Il ne me reste plus qu'à lancer dot, en faisant quelques substitutions pour référencer les images qui viennent d'être générées.
Au final toutes mes images ont été générées via make. Grand luxe, make me supprime même les fichiers povray puisqu'il a détecté qu'il s'agit de fichiers intermédiaires, n'ayant aucune utilité dans mon rendu final ! Et en mettant à jour mon fichier dot, les nouvelles images sont automatiquement générées.
[^] # Re: un exemple en passant
Posté par chimrod (site web personnel) . En réponse au journal Tu souhaites apprendre à programmer en shell. Évalué à 5.
Ok, je donne un exemple un peu plus précis. Récemment je voulais générer un graphe dot, dont chaque nœud est une image. Les images devant être générées dynamiquement.
Les outils du shell me servent de liant pour extraire le nom de chaque nœud et y associer l'image que je veux générer
Grâce aux dépendances de make, je génère le fichier povray quivabien (en remplaçant une chaine de texte dans mon source) :
temp/%.pov: board.pov
cat board.pov | sed -e "s/\$${config}/$(patsubst temp/%.pov,%,$@)/" > $@
(Je vois au passage un joli uuoc. Écrire le commentaire m'aura permis de me relire :))
Je génère ensuite l'image par povray :
img/%.png: temp/%.pov
${POVRAY} +A0.3 +W250 +H250 $(patsubst img/%.png,temp/%.pov,$@)
mv $(patsubst img/%.png,%.png,$@) img
Il ne me reste plus qu'à lancer dot, en faisant quelques substitutions pour référencer les images qui viennent d'être générées.
Au final toutes mes images ont été générées via make. Grand luxe, make me supprime même les fichiers povray puisqu'il a détecté qu'il s'agit de fichiers intermédiaires, n'ayant aucune utilité dans mon rendu final ! Et en mettant à jour mon fichier dot, les nouvelles images sont automatiquement générées.