logirel 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.semver +1 -1
- data/Gemfile +0 -1
- data/lib/logirel.rb +1 -1
- data/lib/logirel/cli.rb +40 -8
- data/lib/logirel/cli_helper.rb +29 -11
- data/lib/logirel/tasks/assembly_info.rb +20 -6
- data/lib/logirel/tasks/core.rb +2 -2
- data/lib/logirel/tasks/msbuild.rb +4 -11
- data/lib/logirel/tasks/nuget.rb +10 -9
- data/lib/logirel/tasks/nuspec.rb +26 -1
- data/lib/logirel/tasks/output.rb +13 -1
- data/lib/logirel/templates/environment.tt +23 -1
- data/lib/logirel/templates/gitignore.tt +2 -1
- data/lib/logirel/templates/paths.tt +2 -2
- data/lib/logirel/templates/utils.tt +16 -4
- data/lib/logirel/version.rb +1 -1
- data/logirel.gemspec +2 -2
- data/vendor/cache/albacore-0.2.7.gem +0 -0
- data/vendor/cache/uuidtools-2.1.2.gem +0 -0
- metadata +26 -28
- data/lib/logirel/Initer.rb +0 -162
- data/vendor/cache/albacore-0.2.5.gem +0 -0
- data/vendor/cache/macaddr-1.0.0.gem +0 -0
- data/vendor/cache/uuid-2.3.2.gem +0 -0
data/.semver
CHANGED
data/Gemfile
CHANGED
data/lib/logirel.rb
CHANGED
data/lib/logirel/cli.rb
CHANGED
@@ -4,7 +4,6 @@ require 'logirel/vs/solution'
|
|
4
4
|
require 'logirel/vs/environment'
|
5
5
|
require 'logirel/tasks/albacore_tasks'
|
6
6
|
require 'logirel/cli_helper'
|
7
|
-
require 'uuid'
|
8
7
|
require 'thor'
|
9
8
|
require 'fileutils'
|
10
9
|
|
@@ -34,15 +33,12 @@ module Logirel
|
|
34
33
|
@root = root
|
35
34
|
|
36
35
|
puts "logirel v#{Logirel::VERSION}"
|
37
|
-
|
36
|
+
|
38
37
|
@folders = helper.folders_selection
|
39
38
|
@files = helper.files_selection folders
|
40
|
-
|
41
|
-
puts "Choose what projects to include:"
|
42
39
|
selected_projs = helper.parse_folders(folders[:src]).find_all { |f| BoolQ.new(f).exec }
|
43
|
-
|
44
|
-
puts ""
|
45
40
|
@metas = selected_projs.empty? ? [] : helper.metadata_interactive(selected_projs, @folders)
|
41
|
+
to_package = @metas.find_all{|p| p[:create_package] }
|
46
42
|
|
47
43
|
puts "initing main environment"
|
48
44
|
run 'semver init'
|
@@ -57,9 +53,45 @@ module Logirel
|
|
57
53
|
run 'git init'
|
58
54
|
run 'git add .'
|
59
55
|
|
56
|
+
generate_asm_info = BoolQ.new("Create common assembly info file?").exec
|
57
|
+
build_sln = BoolQ.new("Add msbuild task for sln file?").exec
|
58
|
+
|
59
|
+
build_dep = ["env:release"]
|
60
|
+
|
61
|
+
if generate_asm_info then
|
62
|
+
assembly_info_task @metas.first(), { :depends => build_dep }
|
63
|
+
build_dep.push 'assemblyinfo'
|
64
|
+
end
|
65
|
+
|
66
|
+
if build_sln then
|
67
|
+
msbuild_task
|
68
|
+
build_dep.push "msbuild" if build_sln
|
69
|
+
|
70
|
+
outputs = { :depends => @metas.collect { |m| :"#{m[:ruby_key]}_output" } }
|
71
|
+
@metas.each { |p| output_task p, {:depends=>[:msbuild]} }
|
72
|
+
append_file BUILD_FILE, "task :output#{ inject_dependency outputs }\n"
|
73
|
+
|
74
|
+
build_dep.push "output"
|
75
|
+
end
|
76
|
+
|
77
|
+
if not to_package.empty? then
|
78
|
+
nuspecs = { :depends => to_package.collect{|p| :"#{p[:ruby_key]}_nuspec" } }
|
79
|
+
append_to_file BUILD_FILE, "task :nuspecs#{ inject_dependency nuspecs }\n"
|
80
|
+
to_package.each{ |p| nuspec_task p }
|
81
|
+
|
82
|
+
nugets = { :depends => [:"env:release", :nuspecs].concat(to_package.collect{|p| :"#{p[:ruby_key]}_nuget" }) }
|
83
|
+
append_to_file BUILD_FILE, "task :nugets#{inject_dependency nugets}\n"
|
84
|
+
to_package.each{ |p| nuget_task p }
|
85
|
+
|
86
|
+
build_dep.push "nugets"
|
87
|
+
end
|
88
|
+
|
89
|
+
if BoolQ.new("Setup default task?") then
|
90
|
+
opts = { :depends => build_dep }
|
91
|
+
append_to_file File.join(@root, BUILD_FILE), "task :default #{ inject_dependency opts }"
|
92
|
+
end
|
93
|
+
|
60
94
|
# TODO: add a few nuget, nuspec, owrap, fpm, puppet etc tasks here!
|
61
|
-
build_sln = BoolQ.new("add msbuild task for sln file?", true).exec
|
62
|
-
msbuild_task BoolQ.new("Set this task up as rake default task?", true).exec if build_sln
|
63
95
|
|
64
96
|
helper.say_goodbye
|
65
97
|
end
|
data/lib/logirel/cli_helper.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'logirel/queries'
|
2
|
+
require 'uuidtools'
|
2
3
|
|
3
4
|
module Logirel
|
4
5
|
class CliHelper
|
@@ -10,6 +11,14 @@ module Logirel
|
|
10
11
|
|
11
12
|
# src: relative path!
|
12
13
|
def parse_folders src
|
14
|
+
puts ""
|
15
|
+
puts "Projects Selection"
|
16
|
+
puts "---------------------"
|
17
|
+
puts "Choose what projects to include (don't include test-projects):"
|
18
|
+
parse_folders_inner src
|
19
|
+
end
|
20
|
+
|
21
|
+
def parse_folders_inner src
|
13
22
|
src = File.join(@root_dir, src, '*')
|
14
23
|
Dir.
|
15
24
|
glob(src).
|
@@ -20,6 +29,7 @@ module Logirel
|
|
20
29
|
end
|
21
30
|
|
22
31
|
def folders_selection
|
32
|
+
puts ""
|
23
33
|
puts "Directories Selection"
|
24
34
|
puts "---------------------"
|
25
35
|
puts "Current dir: #{@root_dir}, #{Dir.entries(@root_dir).keep_if{|x|
|
@@ -29,8 +39,9 @@ module Logirel
|
|
29
39
|
puts ""
|
30
40
|
|
31
41
|
build_dir = StrQ.new("Build Output Directory", "build").exec
|
42
|
+
|
32
43
|
{
|
33
|
-
:src => StrQ.new("Source Directory. Default (src) contains (#{
|
44
|
+
:src => StrQ.new("Source Directory. Default (src) contains (#{parse_folders_inner('src').inspect})", 'src').exec,
|
34
45
|
:buildscripts => StrQ.new("Buildscripts Directory", "buildscripts").exec,
|
35
46
|
:build => build_dir,
|
36
47
|
:tools => StrQ.new("Tools Directory", "tools").exec,
|
@@ -43,13 +54,14 @@ module Logirel
|
|
43
54
|
# folders: hash (as defined above), of folder paths
|
44
55
|
def files_selection folders
|
45
56
|
puts "Looking at src folder: '#{folders[:src]}'."
|
46
|
-
first_sln = Dir.glob(File.join(@root_dir, folders[:src],"*.sln")).first
|
57
|
+
first_sln = Dir.glob(File.join(@root_dir, folders[:src],"*.sln")).first || ""
|
47
58
|
{
|
48
59
|
:sln => StrQ.new("sln file", File.join(folders[:src], File.basename(first_sln))).exec
|
49
60
|
}
|
50
61
|
end
|
51
62
|
|
52
63
|
def metadata_interactive selected_projs, selected_folders
|
64
|
+
puts ""
|
53
65
|
puts "Project Meta-Data Definitions"
|
54
66
|
puts "-----------------------------"
|
55
67
|
puts "Let's set up some meta-data!"
|
@@ -60,11 +72,13 @@ module Logirel
|
|
60
72
|
def say_goodbye
|
61
73
|
puts ""
|
62
74
|
puts "SCAFFOLDING DONE! Now run 'bundle install' to install any dependencies for your albacore rakefile,"
|
63
|
-
puts " and git commit to commit changes!"
|
75
|
+
puts " and git commit to commit changes! *** REMEMBER THAT YOU NEED NuGet at: '[tools]/nuget.exe' ***"
|
76
|
+
puts " to build nugets."
|
64
77
|
puts ""
|
65
78
|
puts "Footnote:"
|
66
|
-
puts "If you hack a nice task or deployment script - feel free to send
|
67
|
-
puts "make it available for everyone and get support on it through the community for free!"
|
79
|
+
puts "If you hack a nice task or deployment script - feel free to send a pull request to https://github.com/haf/logirel,"
|
80
|
+
puts "to make it available for everyone and get support on it through the community for free!"
|
81
|
+
puts ""
|
68
82
|
end
|
69
83
|
|
70
84
|
private
|
@@ -73,19 +87,23 @@ module Logirel
|
|
73
87
|
|
74
88
|
puts "META DATA FOR DIRECTORY: '#{src_dir}/#{base}'"
|
75
89
|
title = StrQ.new("Title", base).exec
|
90
|
+
create_package = BoolQ.new("Package with package manager?").exec
|
91
|
+
has_unit_tests = BoolQ.new("Has unit-tests?").exec
|
76
92
|
|
77
93
|
{
|
78
94
|
:title => title,
|
79
95
|
:id => base,
|
80
|
-
:dir =>
|
81
|
-
:test_dir => StrQ.new("Test Directory", title + ".Tests").exec,
|
96
|
+
:dir => base,
|
97
|
+
:test_dir => if has_unit_tests then StrQ.new("Test Directory", title + ".Tests").exec else "" end,
|
82
98
|
:description => StrQ.new("Description", "Missing description for #{base}").exec,
|
83
|
-
:copyright => StrQ.new("Copyright").exec,
|
84
99
|
:authors => StrQ.new("Authors").exec,
|
85
100
|
:company => StrQ.new("Company").exec,
|
86
|
-
:
|
87
|
-
:
|
88
|
-
:
|
101
|
+
:copyright => StrQ.new("Copyright", "Copyright (c)").exec,
|
102
|
+
:nuget_key => if create_package then StrQ.new("NuGet key", base).exec else "" end,
|
103
|
+
:ruby_key => StrQ.new("Ruby key (compulsory: e.g. 'autotx')", nil, STDIN, lambda { |s| s != nil && s.length > 0 }).exec,
|
104
|
+
:guid => UUIDTools::UUID.random_create.to_s,
|
105
|
+
:dependencies => [],
|
106
|
+
:create_package => create_package
|
89
107
|
}
|
90
108
|
end
|
91
109
|
end
|
@@ -1,15 +1,29 @@
|
|
1
1
|
module Logirel::Tasks
|
2
|
-
def assembly_info_task
|
2
|
+
def assembly_info_task proj_meta, opts={}
|
3
|
+
|
4
|
+
k = proj_meta[:ruby_key]
|
5
|
+
|
3
6
|
append_to_file BUILD_FILE, <<-EOF, :verbose => false
|
4
7
|
|
5
|
-
|
8
|
+
desc 'generate the shared assembly info'
|
9
|
+
assemblyinfo #{inject_task_name opts, 'assemblyinfo' }#{ inject_dependency opts } do |asm|
|
10
|
+
data = commit_data() #hash + date
|
11
|
+
asm.product_name = asm.title = PROJECTS[:#{k}][:title]
|
12
|
+
asm.description = PROJECTS[:#{k}][:description] + " \#{data[0]} - \#{data[1]}"
|
13
|
+
asm.company_name = PROJECTS[:#{k}][:company]
|
14
|
+
# This is the version number used by framework during build and at runtime to locate, link and load the assemblies. When you add reference to any assembly in your project, it is this version number which gets embedded.
|
6
15
|
asm.version = BUILD_VERSION
|
16
|
+
# Assembly File Version : This is the version number given to file as in file system. It is displayed by Windows Explorer. Its never used by .NET framework or runtime for referencing.
|
7
17
|
asm.file_version = BUILD_VERSION
|
8
|
-
asm.
|
9
|
-
|
10
|
-
|
11
|
-
|
18
|
+
asm.custom_attributes :AssemblyInformationalVersion => "\#{BUILD_VERSION}", # disposed as product version in explorer
|
19
|
+
:CLSCompliantAttribute => false,
|
20
|
+
:AssemblyConfiguration => "\#{CONFIGURATION}",
|
21
|
+
:Guid => PROJECTS[:#{k}][:guid]
|
22
|
+
asm.com_visible = false
|
23
|
+
asm.copyright = PROJECTS[:#{k}][:copyright]
|
24
|
+
asm.output_file = File.join(FOLDERS[:src], 'SharedAssemblyInfo.cs')
|
12
25
|
end
|
26
|
+
|
13
27
|
EOF
|
14
28
|
end
|
15
29
|
end
|
data/lib/logirel/tasks/core.rb
CHANGED
@@ -21,8 +21,8 @@ module Logirel::Tasks
|
|
21
21
|
|
22
22
|
|
23
23
|
private
|
24
|
-
def inject_dependency(params)
|
25
|
-
' => ' + params[:depends].inspect.to_s if params[:depends]
|
24
|
+
def inject_dependency(params, further_deps=[])
|
25
|
+
' => ' + params[:depends].concat(further_deps).inspect.to_s if params[:depends]
|
26
26
|
end
|
27
27
|
|
28
28
|
def inject_task_name(opts, default_name)
|
@@ -1,24 +1,17 @@
|
|
1
1
|
module Logirel::Tasks
|
2
|
-
def msbuild_task
|
3
|
-
#sln_file_path = tuck_and_get :sln_file_path, sln_file_path
|
4
|
-
#add_as_default = tuck_and_get :add_as_default, add_as_default
|
2
|
+
def msbuild_task opts={}
|
5
3
|
|
6
|
-
|
7
|
-
append_to_file File.join(@root, BUILD_FILE), <<-EOF, :verbose => false
|
8
|
-
|
9
|
-
task :default => ["env:release", #{ inject_task_name opts, 'msbuild' }]
|
10
|
-
|
11
|
-
EOF
|
12
|
-
end
|
4
|
+
task_name = inject_task_name opts, 'msbuild'
|
13
5
|
|
14
6
|
append_to_file File.join(@root, BUILD_FILE), <<-EOF, :verbose => false
|
15
7
|
|
16
8
|
desc "build sln file"
|
17
|
-
msbuild #{
|
9
|
+
msbuild #{ task_name }#{ inject_dependency opts } do |msb|
|
18
10
|
msb.solution = FILES[:sln]
|
19
11
|
msb.properties :Configuration => CONFIGURATION
|
20
12
|
msb.targets :Clean, :Build
|
21
13
|
end
|
14
|
+
|
22
15
|
EOF
|
23
16
|
end
|
24
17
|
end
|
data/lib/logirel/tasks/nuget.rb
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
module Logirel::Tasks
|
2
|
-
def nuget_task(
|
3
|
-
|
4
|
-
|
2
|
+
def nuget_task(proj_meta, opts={})
|
3
|
+
|
4
|
+
k = proj_meta[:ruby_key]
|
5
5
|
|
6
6
|
append_to_file BUILD_FILE, <<-EOF, :verbose => false
|
7
7
|
|
8
|
-
desc "
|
9
|
-
nugetpack #{ inject_task_name opts,
|
10
|
-
nuget.command = "
|
11
|
-
nuget.nuspec = "
|
12
|
-
nuget.base_folder = "
|
13
|
-
nuget.output = "
|
8
|
+
desc "nuget pack '#{proj_meta[:title]}'"
|
9
|
+
nugetpack #{ inject_task_name opts, k + "_nuget" }#{ inject_dependency opts } do |nuget|
|
10
|
+
nuget.command = "\#{COMMANDS[:nuget]}"
|
11
|
+
nuget.nuspec = "\#{FILES[:#{k}][:nuspec]}"
|
12
|
+
# nuget.base_folder = "."
|
13
|
+
nuget.output = "\#{FOLDERS[:nuget]}"
|
14
14
|
end
|
15
|
+
|
15
16
|
EOF
|
16
17
|
end
|
17
18
|
end
|
data/lib/logirel/tasks/nuspec.rb
CHANGED
@@ -1,4 +1,29 @@
|
|
1
1
|
module Logirel::Tasks
|
2
|
-
def nuspec_task
|
2
|
+
def nuspec_task proj_meta, opts={}
|
3
|
+
|
4
|
+
k = proj_meta[:ruby_key]
|
5
|
+
|
6
|
+
append_to_file BUILD_FILE, <<-EOF, :verbose => false
|
7
|
+
|
8
|
+
desc "Create a nuspec for '#{proj_meta[:title]}'"
|
9
|
+
nuspec #{inject_task_name opts, k + "_nuspec"}#{ inject_dependency opts } do |nuspec|
|
10
|
+
nuspec.id = "\#{PROJECTS[:#{k}][:nuget_key]}"
|
11
|
+
nuspec.version = BUILD_VERSION
|
12
|
+
nuspec.authors = "\#{PROJECTS[:#{k}][:authors]}"
|
13
|
+
nuspec.description = "\#{PROJECTS[:#{k}][:description]}"
|
14
|
+
nuspec.title = "\#{PROJECTS[:#{k}][:title]}"
|
15
|
+
# nuspec.projectUrl = 'http://github.com/haf' # TODO: Set this for nuget generation
|
16
|
+
nuspec.language = "en-US"
|
17
|
+
nuspec.licenseUrl = "http://www.apache.org/licenses/LICENSE-2.0" # TODO: set this for nuget generation
|
18
|
+
nuspec.requireLicenseAcceptance = "false"
|
19
|
+
#{proj_meta[:dependencies].
|
20
|
+
collect{|dep| " nuspec.dependency '#{dep[:nuget_key]}', '#{dep[:version]}'" }.
|
21
|
+
join("\n") unless proj_meta[:dependencies].empty?
|
22
|
+
}
|
23
|
+
nuspec.output_file = FILES[:#{k}][:nuspec]
|
24
|
+
nuspec_copy(:#{k}, "\#{PROJECTS[:#{k}][:id]}.{dll,pdb,xml}")
|
25
|
+
end
|
26
|
+
|
27
|
+
EOF
|
3
28
|
end
|
4
29
|
end
|
data/lib/logirel/tasks/output.rb
CHANGED
@@ -1,4 +1,16 @@
|
|
1
1
|
module Logirel::Tasks
|
2
|
-
def output_task
|
2
|
+
def output_task proj_meta, opts={}
|
3
|
+
|
4
|
+
k = proj_meta[:ruby_key]
|
5
|
+
|
6
|
+
append_to_file BUILD_FILE, <<-EOF, :verbose => false
|
7
|
+
|
8
|
+
task #{inject_task_name opts, k + "_output"}#{ inject_dependency opts } do
|
9
|
+
target = File.join(FOLDERS[:binaries], PROJECTS[:#{k}][:id])
|
10
|
+
copy_files FOLDERS[:#{k}][:out], "*.{xml,dll,pdb,config}", target
|
11
|
+
CLEAN.include(target)
|
12
|
+
end
|
13
|
+
|
14
|
+
EOF
|
3
15
|
end
|
4
16
|
end
|
@@ -9,7 +9,7 @@ namespace :env do
|
|
9
9
|
fv = version SemVer.find.to_s
|
10
10
|
revision = (!fv[3] || fv[3] == 0) ? (ENV['BUILD_NUMBER'] || Time.now.strftime('%j%H')) : fv[3] # (day of year 0-265)(hour 00-24)
|
11
11
|
|
12
|
-
ENV['BUILD_VERSION'] = BUILD_VERSION = "#{SemVer.new(fv[0], fv[1], fv[2]).
|
12
|
+
ENV['BUILD_VERSION'] = BUILD_VERSION = "#{ SemVer.new(fv[0], fv[1], fv[2]).format "%M.%m.%p" }.#{revision}"
|
13
13
|
puts "Assembly Version: #{BUILD_VERSION}."
|
14
14
|
puts "##teamcity[buildNumber '#{BUILD_VERSION}']" # tell teamcity our decision
|
15
15
|
|
@@ -38,18 +38,40 @@ namespace :env do
|
|
38
38
|
<% end %>
|
39
39
|
end
|
40
40
|
|
41
|
+
task :dir_tasks do
|
42
|
+
all_dirs = []
|
43
|
+
|
44
|
+
[:build, :tools, :tests, :nuget, :nuspec].each do |dir|
|
45
|
+
directory FOLDERS[dir]
|
46
|
+
all_dirs << FOLDERS[dir]
|
47
|
+
end
|
48
|
+
|
49
|
+
[:out, :nuspec, :test_out].each do |dir|
|
50
|
+
<%= metas.collect{ |m| :"#{m[:ruby_key]}" }.inspect.to_s %>.each{ |k|
|
51
|
+
directory FOLDERS[k][dir]
|
52
|
+
all_dirs << FOLDERS[k][dir]
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
all_dirs.each do |d|
|
57
|
+
Rake::Task[d].invoke
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
41
61
|
# DEBUG/RELEASE
|
42
62
|
|
43
63
|
desc "set debug environment variables"
|
44
64
|
task :debug => [:common] do
|
45
65
|
Rake::Task["env:configure"].invoke('Debug')
|
46
66
|
Rake::Task["env:set_dirs"].invoke
|
67
|
+
Rake::Task["env:dir_tasks"].invoke
|
47
68
|
end
|
48
69
|
|
49
70
|
desc "set release environment variables"
|
50
71
|
task :release => [:common] do
|
51
72
|
Rake::Task["env:configure"].invoke('Release')
|
52
73
|
Rake::Task["env:set_dirs"].invoke
|
74
|
+
Rake::Task["env:dir_tasks"].invoke
|
53
75
|
end
|
54
76
|
|
55
77
|
# FRAMEWORKS
|
@@ -18,7 +18,7 @@ FOLDERS = folders.merge({
|
|
18
18
|
<% metas.each do |m| %>
|
19
19
|
:<%=m[:ruby_key]%> => {
|
20
20
|
:test_dir => '<%= m[:test_dir] %>',
|
21
|
-
:nuspec => "#{folders[:nuspec]
|
21
|
+
:nuspec => "#{File.join(folders[:nuspec], PROJECTS[:<%= m[:ruby_key] %>][:nuget_key])}",
|
22
22
|
:out => 'placeholder - environment.rb will sets this',
|
23
23
|
:test_out => 'placeholder - environment.rb sets this'
|
24
24
|
},
|
@@ -29,7 +29,7 @@ FILES = {
|
|
29
29
|
:sln => "<%= files[:sln] %>",
|
30
30
|
<% metas.each do |m| %>
|
31
31
|
:<%= m[:ruby_key] %> => {
|
32
|
-
:nuspec =>
|
32
|
+
:nuspec => File.join(FOLDERS[:<%= m[:ruby_key] %>][:nuspec], "#{PROJECTS[:<%= m[:ruby_key] %>][:nuget_key]}.nuspec")
|
33
33
|
},
|
34
34
|
<% end %>
|
35
35
|
}
|
@@ -12,12 +12,24 @@ def commit_data
|
|
12
12
|
[commit, commit_date]
|
13
13
|
end
|
14
14
|
|
15
|
+
# copy from the key's data using the glob pattern
|
16
|
+
def nuspec_copy(key, glob)
|
17
|
+
puts "key: #{key}, glob: #{glob}, proj dir: #{PROJECTS[key][:dir]}"
|
18
|
+
FileList[File.join(FOLDERS[:binaries], PROJECTS[key][:dir], glob)].collect{ |f|
|
19
|
+
to = File.join( FOLDERS[:"#{key}"][:nuspec], "lib", FRAMEWORK )
|
20
|
+
FileUtils.mkdir_p to
|
21
|
+
cp f, to
|
22
|
+
# return the file name and its extension:
|
23
|
+
File.join(FRAMEWORK, File.basename(f))
|
24
|
+
}
|
25
|
+
end
|
15
26
|
|
16
27
|
def copy_files(from_dir, file_pattern, out_dir)
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
28
|
+
puts "copying from #{out_dir}"
|
29
|
+
FileUtils.mkdir_p out_dir unless FileTest.exists?(out_dir)
|
30
|
+
Dir.glob(File.join(from_dir, file_pattern)){|file|
|
31
|
+
copy(file, out_dir) if File.file?(file)
|
32
|
+
}
|
21
33
|
end
|
22
34
|
|
23
35
|
def versions(str)
|
data/lib/logirel/version.rb
CHANGED
data/logirel.gemspec
CHANGED
@@ -27,11 +27,11 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_development_dependency "rspec", "~> 2.6.0"
|
28
28
|
s.add_development_dependency "memoize"
|
29
29
|
s.add_development_dependency "devver-construct"
|
30
|
-
s.add_dependency "albacore", "~> 0.2.
|
30
|
+
s.add_dependency "albacore", "~> 0.2.7"
|
31
31
|
s.add_dependency "semver2", "~> 2.0.0"
|
32
32
|
s.add_dependency "bundler", "~> 1.0.14"
|
33
33
|
s.add_dependency "thor", "~> 0.14.6"
|
34
|
-
s.add_dependency "
|
34
|
+
s.add_dependency "uuidtools", "~> 2.1.2"
|
35
35
|
s.add_dependency "nokogiri", "~>1.4.4"
|
36
36
|
s.add_dependency "rubyzip", "~>0.9.4"
|
37
37
|
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logirel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-08-11 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &23442324 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.6.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *23442324
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: memoize
|
27
|
-
requirement: &
|
27
|
+
requirement: &23442036 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *23442036
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: devver-construct
|
38
|
-
requirement: &
|
38
|
+
requirement: &23441652 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,21 +43,21 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *23441652
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: albacore
|
49
|
-
requirement: &
|
49
|
+
requirement: &23441136 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.2.
|
54
|
+
version: 0.2.7
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *23441136
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: semver2
|
60
|
-
requirement: &
|
60
|
+
requirement: &23439984 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 2.0.0
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *23439984
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
|
-
requirement: &
|
71
|
+
requirement: &23439648 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 1.0.14
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *23439648
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: thor
|
82
|
-
requirement: &
|
82
|
+
requirement: &23439348 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,21 +87,21 @@ dependencies:
|
|
87
87
|
version: 0.14.6
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *23439348
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
93
|
-
requirement: &
|
92
|
+
name: uuidtools
|
93
|
+
requirement: &23438868 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: 2.
|
98
|
+
version: 2.1.2
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *23438868
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: nokogiri
|
104
|
-
requirement: &
|
104
|
+
requirement: &23438388 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: 1.4.4
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *23438388
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: rubyzip
|
115
|
-
requirement: &
|
115
|
+
requirement: &23437752 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ~>
|
@@ -120,7 +120,7 @@ dependencies:
|
|
120
120
|
version: 0.9.4
|
121
121
|
type: :runtime
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *23437752
|
124
124
|
description: ! "The gem works by having as its dependencies \n everything you need
|
125
125
|
to get started with OSS and proprietary .Net coding.\n The aim of the gem is to
|
126
126
|
allow developers to get up and running quickly\n and provide a nice way of converting
|
@@ -139,7 +139,6 @@ files:
|
|
139
139
|
- Rakefile.rb
|
140
140
|
- bin/logirel
|
141
141
|
- lib/logirel.rb
|
142
|
-
- lib/logirel/Initer.rb
|
143
142
|
- lib/logirel/cli.rb
|
144
143
|
- lib/logirel/cli_helper.rb
|
145
144
|
- lib/logirel/queries.rb
|
@@ -176,10 +175,9 @@ files:
|
|
176
175
|
- spec/queries/string_query_spec.rb
|
177
176
|
- spec/support/with_sample_projects.rb
|
178
177
|
- spec/version_spec.rb
|
179
|
-
- vendor/cache/albacore-0.2.
|
178
|
+
- vendor/cache/albacore-0.2.7.gem
|
180
179
|
- vendor/cache/devver-construct-1.1.0.gem
|
181
180
|
- vendor/cache/diff-lcs-1.1.2.gem
|
182
|
-
- vendor/cache/macaddr-1.0.0.gem
|
183
181
|
- vendor/cache/memoize-1.3.1.gem
|
184
182
|
- vendor/cache/nokogiri-1.4.7-x86-mingw32.gem
|
185
183
|
- vendor/cache/rspec-2.6.0.gem
|
@@ -189,7 +187,7 @@ files:
|
|
189
187
|
- vendor/cache/rubyzip-0.9.4.gem
|
190
188
|
- vendor/cache/semver2-2.0.0.gem
|
191
189
|
- vendor/cache/thor-0.14.6.gem
|
192
|
-
- vendor/cache/
|
190
|
+
- vendor/cache/uuidtools-2.1.2.gem
|
193
191
|
homepage: https://github.com/haf/logirel
|
194
192
|
licenses: []
|
195
193
|
post_install_message:
|
data/lib/logirel/Initer.rb
DELETED
@@ -1,162 +0,0 @@
|
|
1
|
-
require 'logirel/queries/bool_q'
|
2
|
-
require 'logirel/queries/str_q'
|
3
|
-
require 'semver'
|
4
|
-
require 'enumerator'
|
5
|
-
require 'net/http'
|
6
|
-
require 'uuid'
|
7
|
-
|
8
|
-
module Logirel
|
9
|
-
class Initer
|
10
|
-
|
11
|
-
attr_reader :root_path, :buildscripts_path, :tools_path
|
12
|
-
|
13
|
-
def initialize(root = '.',
|
14
|
-
buildscripts = 'buildscripts',
|
15
|
-
tools = 'tools')
|
16
|
-
@root_path = root
|
17
|
-
@buildscripts_path = buildscripts
|
18
|
-
@tools_path = tools
|
19
|
-
end
|
20
|
-
|
21
|
-
def nuget_from_codeplex(cp_ver, gem_ver)
|
22
|
-
(cp_ver <=> gem_ver) > 0
|
23
|
-
end
|
24
|
-
|
25
|
-
def create_path_folders(metas, f)
|
26
|
-
f.puts %q{
|
27
|
-
require File.dirname(__FILE__) + '/project_data'
|
28
|
-
root_folder = File.expand_path("#{File.dirname(__FILE__)}/..")
|
29
|
-
Folders = \{
|
30
|
-
}
|
31
|
-
f.puts ":src => " + StrQ.new("src").exec + ","
|
32
|
-
f.puts ":out => " + StrQ.new("build").exec + ","
|
33
|
-
f.puts ":package => " + StrQ.new("packages").exec + ","
|
34
|
-
f.puts ":tools => " + StrQ.new("tools").exec + ","
|
35
|
-
f.puts %q{:tests => File.join("build", "tests"),
|
36
|
-
:nuget => File.join("build", "nuget"),
|
37
|
-
:root => root_folder,
|
38
|
-
:binaries => "placeholder - specify build environment",
|
39
|
-
}
|
40
|
-
f.puts ":#{metas[:ruby_key]}" + " => {"
|
41
|
-
f.puts ':nuspec => File.join("build", "nuspec", Projects[' + ":#{metas[:ruby_key]}" + '][' + ":#{metas[:dir]}" + ']),'
|
42
|
-
f.puts %q{:out => 'placeholder - specify build environment',
|
43
|
-
:test_out => 'placeholder - specify build environment'
|
44
|
-
\},\}}
|
45
|
-
end
|
46
|
-
|
47
|
-
def create_path_files(metas, f)
|
48
|
-
f.puts "Files = {"
|
49
|
-
f.puts ":sln => " + StrQ.new("sln").exec + ","
|
50
|
-
f.puts ":#{metas[:ruby_key]} => {"
|
51
|
-
f.puts ':nuspec => File.join(Folders[:nuspec], Projects[' + ":#{metas[:ruby_key]}" + '][' + ":#{metas[:id]}" + '].nuspec),'
|
52
|
-
f.puts %q{:nunit => File.join(Folders[:nunit], "nunit-console.exe"),
|
53
|
-
:ilmerge => File.join(Folders[:tools], "ILMerge.exe")
|
54
|
-
\},\}}
|
55
|
-
end
|
56
|
-
|
57
|
-
def create_path_commands(metas, f)
|
58
|
-
f.puts %q{Commands = \{
|
59
|
-
:nuget => File.join(Folders[:tools], "NuGet.exe")
|
60
|
-
\}}
|
61
|
-
end
|
62
|
-
|
63
|
-
def create_path_uris(metas, f)
|
64
|
-
f.puts %q{Uris = \{
|
65
|
-
:nuget_offical => "http://packages.nuget.org/v1/"
|
66
|
-
\}}
|
67
|
-
end
|
68
|
-
|
69
|
-
def init_paths_rb metas
|
70
|
-
File.open(File.join(@root_path, @buildscripts_path, "paths.rb"), "w") do |f|
|
71
|
-
create_path_folders(metas, f)
|
72
|
-
create_path_files(metas, f)
|
73
|
-
create_path_commands(metas, f)
|
74
|
-
create_path_uris(metas, f)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def init_environement_rb
|
79
|
-
base_path = ensure_path @buildscripts_path
|
80
|
-
path = File.join base_path, "environment.rb"
|
81
|
-
File.open(path, "w") do |f|
|
82
|
-
f.puts Net::HTTP.get(
|
83
|
-
URI.parse('https://raw.github.com/haf/logirel/master/content/environment.rb'))
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
|
88
|
-
def init_gemfile
|
89
|
-
File.open(File.join(@root_path, "Gemfile"), "w+") do |f|
|
90
|
-
f.puts 'source "http://rubygems.org"'
|
91
|
-
f.puts 'gem "albacore"'
|
92
|
-
f.puts 'gem "semver"'
|
93
|
-
f.puts 'gem "bundler"'
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
def init_utils
|
98
|
-
base_path = ensure_path @buildscripts_path
|
99
|
-
path = File.join base_path, "utils.rb"
|
100
|
-
File.open(path, "w") do |f|
|
101
|
-
f.puts Net::HTTP.get(
|
102
|
-
URI.parse('https://raw.github.com/haf/logirel/master/content/utils.rb'))
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
def build_tasks metas
|
107
|
-
|
108
|
-
end
|
109
|
-
|
110
|
-
def assembly_infos metas
|
111
|
-
|
112
|
-
end
|
113
|
-
|
114
|
-
def nugets metas
|
115
|
-
|
116
|
-
end
|
117
|
-
|
118
|
-
def init_rakefile(metas)
|
119
|
-
base_path = ensure_path @buildscripts_path
|
120
|
-
File.open File.join(base_path, "Rakefile.rb"), "w" do |f|
|
121
|
-
f.puts %q{
|
122
|
-
require 'rubygems'
|
123
|
-
require 'bundler'
|
124
|
-
Bundler.setup
|
125
|
-
Bundler.require # if rake gets a wee bit too slow, you may remove this
|
126
|
-
require 'albacore'
|
127
|
-
require 'semver'
|
128
|
-
require 'rake/clean'
|
129
|
-
require '#{buildscripts_path}/project_details'
|
130
|
-
require '#{buildscripts_path}/paths'
|
131
|
-
require '#{buildscripts_path}/utils'
|
132
|
-
require '#{buildscripts_path}/environment'
|
133
|
-
task :default => [:release]
|
134
|
-
task :debug => ["env:debug", :build]
|
135
|
-
task :release => ["env:release", :build]
|
136
|
-
task :ci => ["env:release", :build, :package]
|
137
|
-
}
|
138
|
-
f.puts "task :build => #{metas[:ruby_key]}"
|
139
|
-
|
140
|
-
f.puts build_tasks(metas)
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
def init_project_details(metadata)
|
145
|
-
base_path = ensure_path @buildscripts_path
|
146
|
-
projects = {}
|
147
|
-
metadata.each { |m|
|
148
|
-
projects[:"#{m[:ruby_key]}"] = m #.select{|kv| :"#{kv[0]}" != :"ruby_key"}
|
149
|
-
}
|
150
|
-
File.open(File.join(base_path, "project_details.rb"), "w+") do |f|
|
151
|
-
f.puts "Projects = #{p(projects)}"
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
|
-
def ensure_path path
|
156
|
-
base_path = File.join @root_path, path
|
157
|
-
Dir.mkdir base_path unless Dir.exists? base_path
|
158
|
-
base_path
|
159
|
-
end
|
160
|
-
|
161
|
-
end
|
162
|
-
end
|
Binary file
|
Binary file
|
data/vendor/cache/uuid-2.3.2.gem
DELETED
Binary file
|