A história
Você obtém o cliente, ele compra hospedagem barata apenas com FTP. Agora, nos tempos modernos, todos nós usamos git, VM, alguns CI e Capistrano para facilitar o trabalho. Oh e FTP?
A solução
Cliente de ftp CLI LFTP, difícil de entender, mas no geral uma ótima ferramenta. Abaixo está meu arquivo Cap para tais hosts.
config / deploy.rb
#APP
set :application, "GreatWebsite"
set :app_path, "./worpdress/"
set :scm, :none
#FTP
set :login, "great_website"
set :password, "changeme"
set :ftp_host, "www.great_website.squarebox.eu"
set :deploy_to, "/domains/www.great_website.si/public/"
Capfile
load 'config/deploy'
desc "FTP Sync && Mount"
namespace :deploy do
desc "Sync remote by default"
task :default do
remote.default
end
namespace :remote do
desc "Mount remote to local #{application}"
task :mount do
`mkdir ./mnt/#{application} -p`
`curlftpfs ftp://#{login}:#{password}@#{url} ./mnt/#{application}`
end
desc "Unmount #{application}"
task :umount do
`fusermount -u ./mnt/#{application}`
end
desc "Sync to remote server using lftp"
task :sync do
`lftp -c "set ftp:list-options -a; open ftp://#{login}:#{password}@#{ftp_host}; lcd #{app_path}; cd #{deploy_to}; mirror --reverse --delete --use-cache --verbose --allow-chown --allow-suid --no-umask --parallel=2 --exclude-glob .git --exclude-glob *.log"`
end
desc "Sync app to remote server"
task :default do
self.sync
end
end
end