six-rsync 0.6.9 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -12,13 +12,14 @@ require 'rake/testtask'
12
12
 
13
13
  spec = Gem::Specification.new do |s|
14
14
  s.name = 'six-rsync'
15
- s.version = '0.6.9'
15
+ s.version = '0.7.0'
16
16
  s.has_rdoc = true
17
17
  s.extra_rdoc_files = ['README', 'LICENSE']
18
18
  s.summary = 'Your summary here'
19
19
  s.description = s.summary
20
20
  s.author = 'Sickboy'
21
21
  s.email = 'sb@dev-heaven.net'
22
+ #s.add_dependency('faster_require', '>= 0.5.2')
22
23
  s.add_dependency('log4r', '>= 1.1.2')
23
24
  s.files = %w(LICENSE README Rakefile) + Dir.glob("{bin,spec}/**/*") + Dir.glob("lib/*/**/*.rb")
24
25
  s.require_path = "lib"
data/lib/six/rsync-app.rb CHANGED
@@ -114,6 +114,8 @@ module Six
114
114
 
115
115
  @@log.outputters << o_out << o_err
116
116
 
117
+ puts "six-rsync by Sickboy <sb_at_dev-heaven.net> v#{Six::Repositories::Rsync::VERSION}"
118
+
117
119
  if ARGV.empty?
118
120
  ARGV << Dir.pwd
119
121
  #logger.error "Using current folder"
data/lib/six/rsync.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # encoding: UTF-8
2
+ #begin; require 'faster_require'; rescue LoadError; end if RUBY_PLATFORM =~ /cygwin|mingw|win32/
2
3
 
3
4
  require 'fileutils'
4
5
  require 'digest/md5'
@@ -27,7 +28,7 @@ module Six
27
28
 
28
29
  module Rsync
29
30
  COMPONENT = 'six-rsync'
30
- VERSION = '0.6.9'
31
+ VERSION = '0.7.0'
31
32
  BASE_PATH = Dir.pwd
32
33
 
33
34
  case RUBY_PLATFORM
@@ -94,8 +94,8 @@ module Six
94
94
 
95
95
  end
96
96
 
97
- def update
98
- lib.update('')
97
+ def update(opts = {})
98
+ lib.update('', [], opts)
99
99
  end
100
100
 
101
101
  def reset(opts = {})
data/lib/six/rsync/lib.rb CHANGED
@@ -13,7 +13,7 @@ module Six
13
13
  attr_accessor :verbose
14
14
  PROTECTED = false
15
15
  WINDRIVE = /\"(\w)\:/
16
- DEFAULT_CONFIG = {:hosts => [], :exclude => []}.to_yaml
16
+ DEFAULT_CONFIG = {:hosts => [], :exclude => [], :include => []}.to_yaml
17
17
  DEFAULT_TIMEOUT = 60
18
18
  PARAMS = if PROTECTED
19
19
  "--dry-run --times -O --no-whole-file -r --delete --progress -h --exclude=.rsync"
@@ -337,7 +337,12 @@ module Six
337
337
  arr_opts << "-I" if opts[:force]
338
338
 
339
339
  init
340
- update('', arr_opts, {:force => true})
340
+ config[:include] = opts[:include] if opts.keys.include?(:include)
341
+ config[:exclude] = opts[:exclude] if opts.keys.include?(:exclude)
342
+ config[:hosts] = opts[:hosts] if opts.keys.include?(:hosts)
343
+ save_config(config)
344
+
345
+ update('', arr_opts, opts.merge({:force => true}))
341
346
  opts[:bare] ? {:repository => @rsync_work_dir} : {:working_directory => @rsync_work_dir}
342
347
  end
343
348
 
@@ -346,6 +351,10 @@ module Six
346
351
 
347
352
  handle_config
348
353
  handle_hosts
354
+ config[:hosts] = opts[:hosts] if opts.keys.include?(:hosts)
355
+ config[:include] = opts[:include] if opts.keys.include?(:include)
356
+ config[:exclude] = opts[:exclude] if opts.keys.include?(:exclude)
357
+ save_config(config)
349
358
 
350
359
  load_repos(:local)
351
360
  begin
@@ -358,7 +367,9 @@ module Six
358
367
  hosts = config[:hosts].clone
359
368
  host = hosts.sample
360
369
 
361
- if opts[:force]
370
+ man = false
371
+ man = true if !opts[:include].nil? && !opts[:include].empty?
372
+ if opts[:force] && !man
362
373
  done = false
363
374
  b, i = false, 0
364
375
  #verbose = @verbose
@@ -473,6 +484,7 @@ module Six
473
484
 
474
485
  mismatch = []
475
486
  @repos_remote[typ].each_pair do |key, value|
487
+ next unless include_match(key, typ)
476
488
  if value == @repos_local[typ][key]
477
489
  #@logger.info "Match! #{key}"
478
490
  else
@@ -548,6 +560,7 @@ module Six
548
560
  end
549
561
 
550
562
  @repos_local[typ].each_pair do |key, value|
563
+ next unless include_match(key, typ)
551
564
  del_file(key, typ) unless config[:exclude].include?(key) || !@repos_remote[typ][key].nil?
552
565
  end
553
566
 
@@ -560,6 +573,22 @@ module Six
560
573
 
561
574
 
562
575
  private
576
+ def include_match(key, typ)
577
+ return true if config[:include].empty?
578
+ config[:include].each do |i|
579
+ if typ == :pack
580
+ key = key.sub(/\.gz$/, "")
581
+ end
582
+ case i
583
+ when /^*\.(\S*)$/
584
+ return true if key =~ /\.#{$1}$/
585
+ when /^(\S*)\.*/
586
+ return true if key =~ /^#{$1}\./
587
+ end
588
+ end
589
+ return false
590
+ end
591
+
563
592
  def handle_config
564
593
  @config = load_config
565
594
  unless @config
@@ -596,6 +625,7 @@ module Six
596
625
  def config
597
626
  cfg = @config ||= YAML::load(DEFAULT_CONFIG)
598
627
  cfg[:exclude] = [] unless cfg[:exclude]
628
+ cfg[:include] = [] unless cfg[:include]
599
629
  cfg[:hosts] = [] unless cfg[:hosts]
600
630
  cfg
601
631
  end
@@ -645,6 +675,7 @@ module Six
645
675
  relative.gsub!(@rsync_work_dir, '')
646
676
  relative.gsub!(reg, '')
647
677
 
678
+ next unless include_match(relative, typ)
648
679
  next if config[:exclude].include?(relative)
649
680
  sum = md5(file)
650
681
  h[relative] = sum if sum
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 6
8
- - 9
9
- version: 0.6.9
7
+ - 7
8
+ - 0
9
+ version: 0.7.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Sickboy
@@ -14,13 +14,14 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-12 00:00:00 +02:00
17
+ date: 2010-07-24 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: log4r
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ">="
26
27
  - !ruby/object:Gem::Version
@@ -67,6 +68,7 @@ rdoc_options: []
67
68
  require_paths:
68
69
  - lib
69
70
  required_ruby_version: !ruby/object:Gem::Requirement
71
+ none: false
70
72
  requirements:
71
73
  - - ">="
72
74
  - !ruby/object:Gem::Version
@@ -74,6 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
74
76
  - 0
75
77
  version: "0"
76
78
  required_rubygems_version: !ruby/object:Gem::Requirement
79
+ none: false
77
80
  requirements:
78
81
  - - ">="
79
82
  - !ruby/object:Gem::Version
@@ -83,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
86
  requirements: []
84
87
 
85
88
  rubyforge_project:
86
- rubygems_version: 1.3.6
89
+ rubygems_version: 1.3.7
87
90
  signing_key:
88
91
  specification_version: 3
89
92
  summary: Your summary here