2010-07-07 7 views
2

Je veux utiliser râteau pour déployer un site .net sur un serveur Windows ... Bit nouveau à cela et se retrouver avec les trucs très simple ...Rake sur les fenêtres - répertoire de copie vers un autre serveur

Comment devrais-je copier un répertoire d'un dossier local vers un autre serveur Windows?

Au moment j'ai:

task :default => :CWS_Web_application 

desc 'Depoly CWS Web application to preview environment' 
task :CWS_Web_application do 
    sh "echo Depoly CWS Web application to preview environment" 
mv('MyDirectory', '//servername/c$/foldername', :verbose => true) 
end 

Cela ne fonctionne évidemment pas - je crois que le problème est le chemin du serveur: '// servername/c $/foldername'

Can point de tout le monde moi dans la bonne direction?

Répondre

4

Ce rubis être mélangé avec des fenêtres, il va y avoir plusieurs façons de le faire, mais voici ce que je l'ai fait par des trucs de tuyauterie à cmd.exe:

sh "del /q /f /s \\\\servername\\c$\\foldername\\subfoldername\\*.*" 
sh "XCOPY .\\source_directory \\\\servername\\c$\\foldername\\subfoldername /E /Exclude:xcopy_excludes.txt" 
sh "COPY .\\config\\website\\servername\\#{BUILD_CONFIGURATION}\\web.config \\\\servername\\c$\\foldername\\subfoldername" 

Vous pouvez aussi faire des choses comme:

sh "net use O: \\\\servername\\c$\\foldername\\subfoldername" 
sh "copy *.* O:" 
sh "net use O: /delete" 

si cela est préférable, ce qui vous permet potentiellement de mettre aussi le nom d'utilisateur et les mots de passe si nécessaire. Le compte exécutant le script rake aura évidemment besoin d'autorisations appropriées sur le domaine/les répertoires, etc.

Il y a probablement d'autres moyens de contourner le \ 's, mais je suis parti avec la première chose qui a fonctionné pour moi.