reseed 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
-