From 5ec0237fbb326f5602ee6f7d1cf9ed93c9ec58c6 Mon Sep 17 00:00:00 2001 From: elijah Date: Sun, 20 Jan 2013 13:52:48 -0800 Subject: fix bug with rsync when leap command is run from other directories --- lib/leap_cli/commands/deploy.rb | 4 +++- lib/leap_cli/remote/plugin.rb | 7 +++++-- vendor/supply_drop/lib/supply_drop/rsync.rb | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/leap_cli/commands/deploy.rb b/lib/leap_cli/commands/deploy.rb index a7f6bc3..37901f4 100644 --- a/lib/leap_cli/commands/deploy.rb +++ b/lib/leap_cli/commands/deploy.rb @@ -88,6 +88,8 @@ module LeapCli end def calculate_includes_from_files(files) + return nil unless files and files.any? + # prepend '/' (kind of like ^ for rsync) includes = files.collect {|file| '/' + file} @@ -98,7 +100,7 @@ module LeapCli end end - # include all parent directories + # include all parent directories (required because of --exclude '*') includes.size.times do |i| path = File.dirname(includes[i]) while(path != '/') diff --git a/lib/leap_cli/remote/plugin.rb b/lib/leap_cli/remote/plugin.rb index 213c981..c32b0be 100644 --- a/lib/leap_cli/remote/plugin.rb +++ b/lib/leap_cli/remote/plugin.rb @@ -48,7 +48,10 @@ module LeapCli; module Remote; module Plugin #end # - # takes a block, yielded a server, that should return {:source => '', :dest => ''} + # takes a block, yielded a server, that should return a hash with various rsync options. + # supported options include: + # + # {:source => '', :dest => '', :flags => '', :includes => [], :excludes => []} # def rsync_update SupplyDrop::Util.thread_pool_size = puppet_parallel_rsync_pool_size @@ -76,7 +79,7 @@ module LeapCli; module Remote; module Plugin # run command logger.debug rsync_cmd - Dir.chdir(options[:chdir] || '.') do + Dir.chdir(options[:chdir] || Path.provider) do ok = system(rsync_cmd) failed_servers << server.host unless ok end diff --git a/vendor/supply_drop/lib/supply_drop/rsync.rb b/vendor/supply_drop/lib/supply_drop/rsync.rb index 732a719..a3d4898 100644 --- a/vendor/supply_drop/lib/supply_drop/rsync.rb +++ b/vendor/supply_drop/lib/supply_drop/rsync.rb @@ -18,11 +18,11 @@ module SupplyDrop end def excludes(patterns) - [patterns].flatten.map { |p| "--exclude='#{p}'" } + [patterns].flatten.compact.map { |p| "--exclude='#{p}'" } end def includes(patterns) - [patterns].flatten.map { |p| "--include='#{p}'" } + [patterns].flatten.compact.map { |p| "--include='#{p}'" } end def ssh_options(options) -- cgit v1.2.3