3

FTP 経由でデプロイを行うための Rake タスクを探しています。

誰か知っていますか?

アンダース

4

3 に答える 3

5

わかりました、私はそれを自分でやることにしました。コードには多くの例外処理が含まれているため、あまり美しくありませんが、仕事は完了します :)

require 'rake'
require 'net/ftp'

def ftp_files(prefixToRemove, sourceFileList, targetDir, hostname, username, password)
  Net::FTP.open(hostname, username, password) do |ftp|
  begin
    puts "Creating dir #{targetDir}" 
    ftp.mkdir targetDir
  rescue 
    puts $!
  end
  sourceFileList.each do |srcFile|    
    if prefixToRemove
      targetFile = srcFile.pathmap(("%{^#{prefixToRemove},#{targetDir}}p")) 
    else
      targetFile = srcFile.pathmap("#{targetDir}%s%p")
    end
    begin
      puts "Creating dir #{targetFile}" if File.directory?(srcFile)
      ftp.mkdir targetFile if File.directory?(srcFile)
    rescue 
      puts $!
    end
    begin
      puts "Copying #{srcFile} -> #{targetFile}" unless File.directory?(srcFile)
      ftp.putbinaryfile(srcFile, targetFile) unless File.directory?(srcFile)
    rescue 
      puts $!
    end
  end
  end
end

task :ftp => [:dist] do
  ftp_files("dist", FileList["dist/**/*"], "remote_dir", 'host.com', 'user', 'pwd')
end
于 2009-02-03T20:35:57.573 に答える
4

私が知っていることではありませんが、Net::SFTP gem は非常に優れています。新しい rake タスクを簡単に作成して、やりたいことを実行できます。

また、実行している展開の種類にも依存します.Railsの場合、CapistranoまたはVlad the Deployerを調べましたか?

于 2009-02-03T17:24:31.953 に答える
2

上記のコードは私にとってはうまくいきませんでした。別のものを作成しました: https://gist.github.com/1690647

于 2012-01-27T20:05:18.640 に答える