reseed 0.0.3 → 0.0.4
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 +69 -37
- data/lib/reseed/version.rb +1 -1
- data/lib/reseed.rb +1 -1
- data/reseed.gemspec +2 -1
- metadata +18 -2
data/lib/reseed/reseed_task.rb
CHANGED
@@ -10,75 +10,107 @@ OpenURI::Buffer.const_set 'StringMax', 0
|
|
10
10
|
|
11
11
|
class ReseedTask
|
12
12
|
|
13
|
-
def execute seeds
|
13
|
+
def execute name, seeds
|
14
|
+
puts "=== #{name} ==="
|
15
|
+
|
14
16
|
seeds.each do |s|
|
17
|
+
files_to_reseed = []
|
18
|
+
|
15
19
|
if s[:file]
|
16
|
-
|
20
|
+
files_to_reseed = [s]
|
17
21
|
elsif s[:files]
|
18
|
-
|
22
|
+
files = Dir.glob s.delete :files
|
23
|
+
files_to_reseed = files.map { |f| { :file => f }.merge(s) }
|
24
|
+
end
|
25
|
+
|
26
|
+
if s[:tfs]
|
27
|
+
puts "\r\nTFS checkout latest..."
|
28
|
+
tfs_checkout files
|
19
29
|
end
|
20
|
-
end
|
21
|
-
end
|
22
30
|
|
23
|
-
|
24
|
-
|
25
|
-
reseed_from_latest_dir args[:latest_dir], args[:file], args[:tfs]
|
26
|
-
elsif args[:dir]
|
27
|
-
reseed_from_dir args[:dir], args[:file], args[:tfs]
|
28
|
-
elsif args[:web]
|
29
|
-
reseed_from_web args[:web], args[:file], args[:tfs]
|
31
|
+
puts "\r\n#{files_to_reseed.count} " + (files_to_reseed.count == 1 ? "file..." : "files...")
|
32
|
+
reseed_files files_to_reseed
|
30
33
|
end
|
31
|
-
end
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
+
puts "\r\n"
|
36
|
+
end
|
35
37
|
|
36
|
-
|
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]
|
46
|
+
end
|
38
47
|
end
|
39
48
|
end
|
40
49
|
|
41
|
-
def reseed_from_latest_dir base_dir, file
|
50
|
+
def reseed_from_latest_dir base_dir, file
|
42
51
|
source = File.join base_dir, Dir.entries(base_dir).sort.reverse.take(1).first
|
43
|
-
reseed_from_dir source, file
|
52
|
+
reseed_from_dir source, file
|
44
53
|
end
|
45
54
|
|
46
|
-
def reseed_from_dir dir, file
|
55
|
+
def reseed_from_dir dir, file
|
47
56
|
source = File.join(dir, File.basename(file))
|
48
|
-
reseed source, file
|
57
|
+
reseed source, file
|
49
58
|
end
|
50
59
|
|
51
|
-
def reseed_from_web url, file
|
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
|
+
|
52
69
|
open url do |x|
|
53
|
-
reseed x.path, file
|
70
|
+
reseed x.path, file
|
54
71
|
end
|
55
72
|
end
|
56
73
|
|
57
|
-
def reseed source, dest
|
74
|
+
def reseed source, dest
|
58
75
|
base_name = File.basename dest
|
59
|
-
|
60
76
|
if File.exist? source
|
61
|
-
|
62
|
-
if checkout
|
63
|
-
tfs_checkout dest
|
64
|
-
end
|
65
|
-
|
66
77
|
begin
|
67
78
|
FileUtils.cp source, dest
|
68
|
-
puts " #{base_name}"
|
69
79
|
rescue
|
70
|
-
puts "
|
80
|
+
puts " #{base_name} (Unable to copy)"
|
71
81
|
end
|
72
82
|
else
|
73
|
-
puts "
|
83
|
+
puts " #{base_name} (Doesn't exist)"
|
74
84
|
end
|
85
|
+
end
|
75
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"
|
76
97
|
end
|
77
98
|
|
78
|
-
def
|
79
|
-
|
80
|
-
|
81
|
-
|
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
|
111
|
+
end
|
112
|
+
end
|
113
|
+
return temp_dir
|
82
114
|
end
|
83
115
|
|
84
116
|
end
|
data/lib/reseed/version.rb
CHANGED
data/lib/reseed.rb
CHANGED
data/reseed.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reseed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -59,6 +59,22 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: zip
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
62
78
|
description: Reseeds dependencies and automatically checks out files in TFS if necessary.
|
63
79
|
email:
|
64
80
|
- joseph.andaverde@softekinc.com
|