reseed 0.0.2
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/.gitignore +4 -0
- data/.rspec +1 -0
- data/Gemfile +4 -0
- data/Rakefile +1 -0
- data/lib/reseed/reseed_task.rb +83 -0
- data/lib/reseed/tfs_step.rb +7 -0
- data/lib/reseed/version.rb +3 -0
- data/lib/reseed.rb +23 -0
- data/reseed.gemspec +27 -0
- metadata +102 -0
data/.gitignore
ADDED
data/.rspec
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--color
|
data/Gemfile
ADDED
data/Rakefile
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require "bundler/gem_tasks"
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
require 'uri'
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
require 'open-uri'
|
|
4
|
+
|
|
5
|
+
TFS_PATH = 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe'
|
|
6
|
+
|
|
7
|
+
# Don't allow downloaded files to be created as StringIO. Force a tempfile to be created.
|
|
8
|
+
OpenURI::Buffer.send :remove_const, 'StringMax' if OpenURI::Buffer.const_defined?('StringMax')
|
|
9
|
+
OpenURI::Buffer.const_set 'StringMax', 0
|
|
10
|
+
|
|
11
|
+
class ReseedTask
|
|
12
|
+
|
|
13
|
+
def execute seeds
|
|
14
|
+
seeds.each do |s|
|
|
15
|
+
if s[:file]
|
|
16
|
+
reseed_file s
|
|
17
|
+
elsif s[:files]
|
|
18
|
+
reseed_files s
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def reseed_file args
|
|
24
|
+
if args[:source][:latest_dir]
|
|
25
|
+
reseed_from_latest_dir args[:source][:latest_dir], args[:file],args[:tfs]
|
|
26
|
+
elsif args[:source][:dir]
|
|
27
|
+
reseed_from_dir args[:source][:dir], args[:file], args[:tfs]
|
|
28
|
+
elsif args[:source][:web]
|
|
29
|
+
reseed_from_web args[:source][:web], args[:file],args[:tfs]
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def reseed_files args
|
|
34
|
+
Dir.glob(args[:files]).each do |f|
|
|
35
|
+
args = { :file => f, :source => args[:source], :tfs => args[:tfs] }
|
|
36
|
+
reseed_file args
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def reseed_from_latest_dir base_dir, file, checkout
|
|
41
|
+
source = File.join base_dir, Dir.entries(base_dir).sort.reverse.take(1).first
|
|
42
|
+
reseed_from_dir source, file, checkout
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def reseed_from_dir dir, file, checkout
|
|
46
|
+
source = File.join(dir, File.basename(file))
|
|
47
|
+
reseed source, file, checkout
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def reseed_from_web url, file, checkout
|
|
51
|
+
open url do |x|
|
|
52
|
+
reseed x.path, file, checkout
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def reseed source, dest, checkout
|
|
57
|
+
base_name = File.basename dest
|
|
58
|
+
|
|
59
|
+
if File.exist? source
|
|
60
|
+
|
|
61
|
+
if checkout
|
|
62
|
+
tfs_checkout dest
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
begin
|
|
66
|
+
FileUtils.cp source, dest
|
|
67
|
+
puts " #{base_name}"
|
|
68
|
+
rescue
|
|
69
|
+
puts " ! #{base_name} (Unable to copy)"
|
|
70
|
+
end
|
|
71
|
+
else
|
|
72
|
+
puts " ! #{base_name} (Doesn't exist)"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def tfs_checkout path
|
|
78
|
+
return false unless system TFS_PATH, "get", path, " /force /noprompt"
|
|
79
|
+
return false unless system TFS_PATH, "checkout", path
|
|
80
|
+
return true
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
data/lib/reseed.rb
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require "reseed/version"
|
|
2
|
+
require 'reseed/reseed_task'
|
|
3
|
+
require 'rake'
|
|
4
|
+
require 'json'
|
|
5
|
+
require 'fileutils'
|
|
6
|
+
|
|
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 options
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
}
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Reseed::create_task
|
|
23
|
+
end
|
data/reseed.gemspec
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
|
3
|
+
require "reseed/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |s|
|
|
6
|
+
s.name = "reseed"
|
|
7
|
+
s.version = Reseed::VERSION
|
|
8
|
+
s.authors = ["joseph.andaverde"]
|
|
9
|
+
s.email = ["joseph.andaverde@softekinc.com"]
|
|
10
|
+
s.homepage = ""
|
|
11
|
+
s.summary = %q{Reseeds dependencies}
|
|
12
|
+
s.description = %q{Reseeds dependencies and automatically checks out files in TFS if necessary.}
|
|
13
|
+
|
|
14
|
+
s.rubyforge_project = "reseed"
|
|
15
|
+
|
|
16
|
+
s.files = `git ls-files`.split("\n")
|
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
19
|
+
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
|
+
# s.add_runtime_dependency "rest-client"
|
|
27
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: reseed
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.2
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- joseph.andaverde
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2012-04-18 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: rspec
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '0'
|
|
22
|
+
type: :development
|
|
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
|
+
- !ruby/object:Gem::Dependency
|
|
31
|
+
name: mocha
|
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
|
33
|
+
none: false
|
|
34
|
+
requirements:
|
|
35
|
+
- - ! '>='
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: '0'
|
|
38
|
+
type: :development
|
|
39
|
+
prerelease: false
|
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ! '>='
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '0'
|
|
46
|
+
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: fakeweb
|
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
none: false
|
|
50
|
+
requirements:
|
|
51
|
+
- - ! '>='
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
54
|
+
type: :development
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
none: false
|
|
58
|
+
requirements:
|
|
59
|
+
- - ! '>='
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
description: Reseeds dependencies and automatically checks out files in TFS if necessary.
|
|
63
|
+
email:
|
|
64
|
+
- joseph.andaverde@softekinc.com
|
|
65
|
+
executables: []
|
|
66
|
+
extensions: []
|
|
67
|
+
extra_rdoc_files: []
|
|
68
|
+
files:
|
|
69
|
+
- .gitignore
|
|
70
|
+
- .rspec
|
|
71
|
+
- Gemfile
|
|
72
|
+
- Rakefile
|
|
73
|
+
- lib/reseed.rb
|
|
74
|
+
- lib/reseed/reseed_task.rb
|
|
75
|
+
- lib/reseed/tfs_step.rb
|
|
76
|
+
- lib/reseed/version.rb
|
|
77
|
+
- reseed.gemspec
|
|
78
|
+
homepage: ''
|
|
79
|
+
licenses: []
|
|
80
|
+
post_install_message:
|
|
81
|
+
rdoc_options: []
|
|
82
|
+
require_paths:
|
|
83
|
+
- lib
|
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
85
|
+
none: false
|
|
86
|
+
requirements:
|
|
87
|
+
- - ! '>='
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
|
+
none: false
|
|
92
|
+
requirements:
|
|
93
|
+
- - ! '>='
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0'
|
|
96
|
+
requirements: []
|
|
97
|
+
rubyforge_project: reseed
|
|
98
|
+
rubygems_version: 1.8.21
|
|
99
|
+
signing_key:
|
|
100
|
+
specification_version: 3
|
|
101
|
+
summary: Reseeds dependencies
|
|
102
|
+
test_files: []
|