reseed 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,115 +2,100 @@ require 'uri'
2
2
  require 'fileutils'
3
3
  require 'open-uri'
4
4
 
5
- TFS_PATH = 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe'
6
-
7
5
  # Don't allow downloaded files to be created as StringIO. Force a tempfile to be created.
8
6
  OpenURI::Buffer.send :remove_const, 'StringMax' if OpenURI::Buffer.const_defined?('StringMax')
9
7
  OpenURI::Buffer.const_set 'StringMax', 0
10
8
 
11
9
  class ReseedTask
12
10
 
13
- def execute name, seeds
14
- puts "=== #{name} ==="
11
+ def execute name, seeds
12
+ @current_task = name
13
+
14
+ seeds.each do |s|
15
+ files_to_reseed = []
15
16
 
16
- seeds.each do |s|
17
- files_to_reseed = []
17
+ if s[:file]
18
+ files_to_reseed = [s]
19
+ elsif s[:files]
20
+ files = Dir.glob s.delete :files
21
+ files_to_reseed = files.map { |f| { :file => f }.merge(s) }
22
+ end
18
23
 
19
- if s[:file]
20
- files_to_reseed = [s]
21
- elsif s[:files]
22
- files = Dir.glob s.delete :files
23
- files_to_reseed = files.map { |f| { :file => f }.merge(s) }
24
+ puts "\r\n#{files_to_reseed.count} " + (files_to_reseed.count == 1 ? "file..." : "files...")
25
+ reseed_files files_to_reseed
24
26
  end
25
27
 
26
- if s[:tfs]
27
- puts "\r\nTFS checkout latest..."
28
- tfs_checkout files_to_reseed
28
+ @current_task = nil
29
+ puts "\r\n"
30
+ end
31
+
32
+ def reseed_files files
33
+ files.each do |args|
34
+ if args[:latest_dir]
35
+ reseed_from_latest_dir args[:latest_dir], args[:file]
36
+ elsif args[:dir]
37
+ reseed_from_dir args[:dir], args[:file]
38
+ elsif args[:web]
39
+ reseed_from_web args[:web], args[:file]
40
+ end
41
+ end
42
+ end
43
+
44
+ def reseed_from_latest_dir base_dir, file
45
+ source = File.join base_dir, Dir.entries(base_dir).sort.reverse.take(1).first
46
+ reseed_from_dir source, file
47
+ end
48
+
49
+ def reseed_from_dir dir, file
50
+ source = File.join(dir, File.basename(file))
51
+ reseed source, file
52
+ end
53
+
54
+ def reseed_from_web url, file
55
+ if /\.zip$/i.match url
56
+ extracted_to = download_and_extract url
57
+ reseed_from_dir extracted_to, file
58
+ return
59
+ elsif /(\\|\/)$/.match url
60
+ url += File.basename file
29
61
  end
30
62
 
31
- puts "\r\n#{files_to_reseed.count} " + (files_to_reseed.count == 1 ? "file..." : "files...")
32
- reseed_files files_to_reseed
33
- end
34
-
35
- puts "\r\n"
36
- end
37
-
38
- def reseed_files files
39
- files.each do |args|
40
- if args[:latest_dir]
41
- reseed_from_latest_dir args[:latest_dir], args[:file]
42
- elsif args[:dir]
43
- reseed_from_dir args[:dir], args[:file]
44
- elsif args[:web]
45
- reseed_from_web args[:web], args[:file]
63
+ open url do |x|
64
+ reseed x.path, file
46
65
  end
47
- end
48
- end
49
-
50
- def reseed_from_latest_dir base_dir, file
51
- source = File.join base_dir, Dir.entries(base_dir).sort.reverse.take(1).first
52
- reseed_from_dir source, file
53
- end
54
-
55
- def reseed_from_dir dir, file
56
- source = File.join(dir, File.basename(file))
57
- reseed source, file
58
- end
59
-
60
- def reseed_from_web url, file
61
- if /\.zip$/i.match url
62
- extracted_to = download_and_extract url
63
- reseed_from_dir extracted_to, file
64
- return
65
- elsif /(\\|\/)$/.match url
66
- url += File.basename file
67
- end
68
-
69
- open url do |x|
70
- reseed x.path, file
71
- end
72
- end
73
-
74
- def reseed source, dest
75
- base_name = File.basename dest
76
- if File.exist? source
77
- begin
78
- FileUtils.cp source, dest
79
- rescue
80
- puts " #{base_name} (Unable to copy)"
66
+ end
67
+
68
+ def reseed source, dest
69
+ base_name = File.basename dest
70
+ if File.exist? source
71
+ begin
72
+ FileUtils.cp source, dest
73
+ puts "#{@current_task}:#{base_name}"
74
+ rescue
75
+ puts "#{@current_task}:#{base_name} (Unable to copy)"
76
+ end
77
+ else
78
+ puts "#{@current_task}:#{base_name} (Doesn't exist)"
81
79
  end
82
- else
83
- puts " #{base_name} (Doesn't exist)"
84
80
  end
85
- end
86
-
87
- def tfs_checkout paths
88
- checked_out = 0
89
- paths.each_slice(10) do |s|
90
- to_checkout = s.map{ |x| "\"#{x}\"" }.join " "
91
- `"#{TFS_PATH}" get #{to_checkout} /force /noprompt >nul 2>&1`
92
- `"#{TFS_PATH}" checkout #{to_checkout} >nul 2>&1`
93
- checked_out += s.count
94
- print "\r #{checked_out} of #{paths.count}"
95
- end
96
- print "\r\n"
97
- end
98
-
99
- def download_and_extract url_to_zip
100
- temp_dir = Dir.mktmpdir
101
-
102
- open url_to_zip do |f|
103
- zip_path = f.path
104
-
105
- Zip::ZipFile.open(zip_path) do |zip|
106
- zip.each do |z|
107
- dest = File.join temp_dir, z.name
108
- FileUtils.mkdir_p(File.dirname(dest))
109
- zip.extract z, dest
110
- end
81
+
82
+ def download_and_extract url_to_zip
83
+ puts "Downloading #{url_to_zip}"
84
+
85
+ temp_dir = Dir.mktmpdir
86
+
87
+ open url_to_zip do |f|
88
+ zip_path = f.path
89
+
90
+ Zip::ZipFile.open(zip_path) do |zip|
91
+ zip.each do |z|
92
+ dest = File.join temp_dir, z.name
93
+ FileUtils.mkdir_p(File.dirname(dest))
94
+ zip.extract z, dest
95
+ end
96
+ end
111
97
  end
112
- end
113
- return temp_dir
114
- end
115
98
 
99
+ temp_dir
100
+ end
116
101
  end
@@ -1,3 +1,3 @@
1
1
  module Reseed
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/reseed.rb CHANGED
@@ -5,19 +5,19 @@ require 'json'
5
5
  require 'fileutils'
6
6
 
7
7
  module Reseed
8
-
9
- def self.create_task
10
- Object.class_eval {
11
- def reseed(name, &configblock)
12
- task :"#{name}" do |t, task_args|
13
- options = []
14
- configblock.call options
15
- task = ReseedTask.new
16
- task.execute name, options
17
- end
8
+
9
+ def self.create_task
10
+ Object.class_eval {
11
+ def reseed(name, &configblock)
12
+ task :"#{name}" do |t, task_args|
13
+ options = []
14
+ configblock.call options
15
+ task = ReseedTask.new
16
+ task.execute name, options
17
+ end
18
18
  end
19
- }
20
- end
19
+ }
20
+ end
21
21
 
22
- Reseed::create_task
22
+ Reseed::create_task
23
23
  end
data/reseed.gemspec CHANGED
@@ -9,20 +9,13 @@ Gem::Specification.new do |s|
9
9
  s.email = ["joseph.andaverde@softekinc.com"]
10
10
  s.homepage = ""
11
11
  s.summary = %q{Reseeds dependencies}
12
- s.description = %q{Reseeds dependencies and automatically checks out files in TFS if necessary.}
12
+ s.description = %q{Reseeds dependencies}
13
13
 
14
14
  s.rubyforge_project = "reseed"
15
15
 
16
16
  s.files = `git ls-files`.split("\n")
17
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
18
  s.require_paths = ["lib"]
20
-
21
- # specify any dependencies here; for example:
22
- s.add_development_dependency "rspec"
23
- s.add_development_dependency "mocha"
24
- s.add_development_dependency "fakeweb"
25
-
26
19
 
27
20
  s.add_runtime_dependency "zip"
28
21
  end
metadata CHANGED
@@ -1,80 +1,39 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: reseed
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 5
9
- version: 0.0.5
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - joseph.andaverde
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2012-04-26 00:00:00 -05:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rspec
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- version: "0"
30
- type: :development
31
- version_requirements: *id001
32
- - !ruby/object:Gem::Dependency
33
- name: mocha
34
- prerelease: false
35
- requirement: &id002 !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- segments:
40
- - 0
41
- version: "0"
42
- type: :development
43
- version_requirements: *id002
44
- - !ruby/object:Gem::Dependency
45
- name: fakeweb
46
- prerelease: false
47
- requirement: &id003 !ruby/object:Gem::Requirement
48
- requirements:
49
- - - ">="
50
- - !ruby/object:Gem::Version
51
- segments:
52
- - 0
53
- version: "0"
54
- type: :development
55
- version_requirements: *id003
56
- - !ruby/object:Gem::Dependency
12
+ date: 2012-07-16 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
57
15
  name: zip
58
- prerelease: false
59
- requirement: &id004 !ruby/object:Gem::Requirement
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- segments:
64
- - 0
65
- version: "0"
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
66
22
  type: :runtime
67
- version_requirements: *id004
68
- description: Reseeds dependencies and automatically checks out files in TFS if necessary.
69
- email:
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ description: Reseeds dependencies
31
+ email:
70
32
  - joseph.andaverde@softekinc.com
71
33
  executables: []
72
-
73
34
  extensions: []
74
-
75
35
  extra_rdoc_files: []
76
-
77
- files:
36
+ files:
78
37
  - .gitignore
79
38
  - .rspec
80
39
  - Gemfile
@@ -83,35 +42,28 @@ files:
83
42
  - lib/reseed/reseed_task.rb
84
43
  - lib/reseed/version.rb
85
44
  - reseed.gemspec
86
- has_rdoc: true
87
- homepage: ""
45
+ homepage: ''
88
46
  licenses: []
89
-
90
47
  post_install_message:
91
48
  rdoc_options: []
92
-
93
- require_paths:
49
+ require_paths:
94
50
  - lib
95
- required_ruby_version: !ruby/object:Gem::Requirement
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- segments:
100
- - 0
101
- version: "0"
102
- required_rubygems_version: !ruby/object:Gem::Requirement
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- segments:
107
- - 0
108
- version: "0"
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
109
63
  requirements: []
110
-
111
64
  rubyforge_project: reseed
112
- rubygems_version: 1.3.6
65
+ rubygems_version: 1.8.24
113
66
  signing_key:
114
67
  specification_version: 3
115
68
  summary: Reseeds dependencies
116
69
  test_files: []
117
-