2011-12-22 3 views
1

Il a été indiqué à plusieurs endroits que le mot-clé "répertoire" peut être utilisé comme un raccourci. Apparemment, il peut être indiqué comme une dépendance, de sorte qu'il sera créé s'il n'est pas déjà présent.rake - comment fonctionne le mot-clé "directory"?

http://onestepback.org/articles/buildingwithrake/directorydependencies.html

L'idée est de spécifier le répertoire de destination en tant que dépendance, ne pas tenter de le créer manuellement à chaque fois, ce qui peut être réalisé en utilisant mkdir_p. L'inconvénient de l'utilisation mkdir_p est qu'il affiche la sortie indépendamment du fait que le répertoire était déjà présent. Une solution alternative est de faire taire cette commande - et encore mieux si la sortie n'est affichée que lorsque le répertoire est créé.

J'ai essayé d'utiliser le mot clé "répertoire" comme suit:


file "destFile" => ["srcFile", directory "myOutputDir"] do 
    FileUtils.cp "srcFile" "myOutputDir/destFile" 
end 

file "destFile" => ["srcFile"] + [directory "myOutputDir"] do 
    FileUtils.cp "srcFile" "myOutputDir/destFile" 
end 

file "destFile" => ["srcFile"] do 
    directory "myOutputDir" 
    FileUtils.cp "srcFile" "myOutputDir/destFile" 
end 

Répondre

1

Que diriez-vous ceci:

directory "myOutputDir" 
file "myOutputDir/destFile" => ["srcFile", "myOutputDir"] do 
    FileUtils.cp "srcFile" "myOutputDir/destFile" 
end 

Je crois qu'il est supposé être utilisé comme une tâche séparée et spécifié comme une dépendance comme toute autre tâche. C'est fondamentalement le même que de spécifier une tâche file qui exécute mkdir, mais l'action est implicite. La syntaxe est par ailleurs la même.

directory seront également toutes les couches de sous-répertoires comme ceci: http://onestepback.org/articles/buildingwithrake/directorydependencies.html

Questions connexes