Cela fait longtemps que je n'ai pas utilisé make
alors soyez indulgent avec moi...
J'ai un répertoire, flac
contenant des fichiers .FLAC. J'ai un répertoire correspondant, mp3
contenant des fichiers MP3. Si un fichier FLAC est plus récent que le fichier MP3 correspondant (ou si le fichier MP3 correspondant n'existe pas), je veux exécuter une série de commandes pour convertir le fichier FLAC en fichier MP3, et copier les balises.
Le hic : je dois chercher dans le flac
de manière récursive, et créer les sous-répertoires correspondants dans le répertoire mp3
répertoire. Les répertoires et les fichiers peuvent contenir des espaces dans leurs noms, et sont nommés en UTF-8.
Et je veux utiliser make
pour conduire cela.
1 votes
Pourquoi avoir choisi la marque à cette fin ? J'aurais pensé qu'écrire un script en bash serait plus simple.
0 votes
(...ou je pourrais l'écrire en Ruby ou Python). J'aimerais m'amuser avec make au-delà des bases, et c'est un "projet" que j'ai ouvert en ce moment.
4 votes
@Neil, le concept de make comme transformation de système de fichiers basée sur des motifs est la meilleure façon d'aborder le problème original. Peut-être que les implémentations de cette approche ont leurs limites, mais
make
est plus proche de l'implémentation que la simplebash
.0 votes
@Pavel Seulement si cela fonctionne !
1 votes
@Pavel Eh bien, un
sh
script qui parcourt la liste des fichiers flac (find | while read flacname
), fait unmp3name
à partir de là, exécute "mkdir -p" sur le fichierdirname "$mp3name"
et ensuite,if [ "$flacfile" -nt "$mp3file"]
convertit"$flacname"
sur"$mp3name"
n'est pas vraiment magique. La seule caractéristique que vous perdez réellement par rapport à unemake
est la possibilité d'exécuterN
les processus de conversion de fichiers en parallèle avecmake -jN
.0 votes
Je l'admets,
make
L'approche déclarative de la société est plus agréable que n'importe quel langage impératif.4 votes
@ndim C'est la première fois que j'entends qualifier la syntaxe de make de "sympa" :-)
1 votes
Utilisation de
make
et le fait d'avoir des espaces dans les noms de fichiers sont des exigences contradictoires. Utilisez un outil adapté au domaine du problème.0 votes
En rapport : stackoverflow.com/questions/3774568/