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.
- data/lib/reseed/reseed_task.rb +79 -94
- data/lib/reseed/version.rb +1 -1
- data/lib/reseed.rb +13 -13
- data/reseed.gemspec +1 -8
- metadata +39 -87
data/lib/reseed/reseed_task.rb
CHANGED
@@ -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
|
-
|
14
|
-
|
11
|
+
def execute name, seeds
|
12
|
+
@current_task = name
|
13
|
+
|
14
|
+
seeds.each do |s|
|
15
|
+
files_to_reseed = []
|
15
16
|
|
16
|
-
|
17
|
-
|
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
|
-
|
20
|
-
|
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
|
-
|
27
|
-
|
28
|
-
|
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
|
-
|
32
|
-
|
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
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
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
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
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
|
data/lib/reseed/version.rb
CHANGED
data/lib/reseed.rb
CHANGED
@@ -5,19 +5,19 @@ require 'json'
|
|
5
5
|
require 'fileutils'
|
6
6
|
|
7
7
|
module Reseed
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
-
|
19
|
+
}
|
20
|
+
end
|
21
21
|
|
22
|
-
|
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
|
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
|
-
|
5
|
-
|
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
|
-
|
18
|
-
|
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
|
-
|
59
|
-
|
60
|
-
requirements:
|
61
|
-
- -
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
|
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
|
-
|
68
|
-
|
69
|
-
|
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
|
-
|
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
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
requirements:
|
104
|
-
- -
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
|
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.
|
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
|
-
|