#!/usr/bin/env ruby require 'fileutils' require 'optparse' arg1, *FILES = ARGV @base_path = Dir.pwd @base_remote_path = '/home/LBG/' @remote_ip = '186.64.120.100' @remote_port = 22222 @remote_user = 'root' @remote_password = 'NpdlP1oT4976KIL8ea' repos = [Hash.new] repos.push({folder_development: 'adminbodega', folder_production: 'adminbodega' }) repos.push({folder_development: 'operario', folder_production: 'operario' }) repos.push({folder_development: 'clientebodega', folder_production: 'clientebodega' }) repos.push({folder_development: 'server', folder_production: 'server' }) def deploy (folder) folder_development = folder[:folder_development] folder_production = folder[:folder_production] Dir.chdir("#{@base_path}/production") system("rm -R #{folder_production}") system("mkdir #{folder_production}") Dir.chdir("#{@base_path}/#{folder_development}") system("ruby production.rb") system("cp -R production/ #{@base_path}/production/#{folder_production}") #system("cp server.sh #{@base_path}/production/#{folder_production}/production") scp(folder_production) end def scp (folder) Dir.chdir("#{@base_path}/production") commrm = "sshpass -p #{@remote_password} ssh -p #{@remote_port} #{@remote_user}@#{@remote_ip} 'rm -r #{@base_remote_path}#{folder}' " puts commrm system(commrm) comm = "sshpass -p #{@remote_password} scp -P #{@remote_port} -r #{folder} #{@remote_user}@#{@remote_ip}:#{@base_remote_path}" puts comm system(comm) commsystem = "sshpass -p #{@remote_password} ssh -p #{@remote_port} #{@remote_user}@#{@remote_ip} '#{@base_remote_path}restart.sh' " puts commsystem system(commsystem) end case arg1 when "deploy" FILES.each do |arg| deploy(repos[arg.to_i]) end else puts "Nada" end