2010-11-09 5 views
1

Je veux copier des fichiers avec Rake, mais par rapport à Ant c'est un peu maladroit et mon implémentation est un peu stupide.Simulation de la copie ant dans Rake

Les fichiers source ont des indicateurs en lecture seule, je souhaite copier des fichiers avec un accès en écriture (c'est ce que fait automatiquement). Si la cible n'est pas plus récente que la source, je ne souhaite pas la copier.

Voici mon code actuel:

source = c:\perforce\read\only\lame 
target = c:\deploy\files\stop\writing\read\only 
FileList[source].each do |src| 
    cp source, src.sub(source, target), :verbose => true 
    chmod 0644, src.sub(source,target) 
end 

Ant serait

<copy todir="target" verbose="true"> 
    <fileset dir="source"> 
    <include name="*" /> 
    </fileset> 
</copy> 

Répondre

1

Je voudrais utiliser un peu différente approche:

FileUtils.cp_r File.join(source,'*'), target 
FileUtils.chmod_R target 

Mais vous demandiez:

if (FileUtils.uptodate?(src,trgt)) cp src,trgt,:verbose=>true 
+0

Le problème avec cp_r, c'est que je copie un ensemble spécifique de fichiers et pas seulement tout. FileUtils.uptodate? C'est plutôt cool. Je vais essayer. Ruby n'arriverait pas à avoir un copier-coller en lecture seule, n'est-ce pas? – Drew

+2

il y a une fonction appelée FileUtils.install, qui permet de définir les permissions pendant la copie – mpapis

+0

Merci, je savais que ruby ​​pourrait faire ça ... quelque part ... en quelque sorte – Drew