fuburake 0.9.5.37 → 1.0.0.38

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDk4YmQyNzZiOTFlYzYzMDNmMzI5OGM5MmFjNjA0YzZmZWUxN2E4NQ==
4
+ NjUwMDM2OGI5N2JmNDY4MjM3NWRiZmJlZWFhNGYzMjFlYTc1NjczZQ==
5
5
  data.tar.gz: !binary |-
6
- OWMxOWQ5NWJjMzgwNzEwMjBhYTJmMzgxMGJiY2RkMDM2ZWRjMjhhNg==
6
+ ZjY2MTczNjI4ZDhjN2UxMWRlNzhhNTcyMzEyMjgwOTEwYWU5NTI4Mw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- N2FlMTg3ZjYwZjUwMDAyZWQ4ZTc1ZmM3YzE3NzkyMTEyNTAyMGEwNzM0YjMx
10
- ZThiNzBmMTAxNzY2YWE5YWE3N2U2NmQ2ZmFmYjUyNmQ3Y2M0NTE2NGU4NjIy
11
- ZWIzMjllNThkYjgzYmQ1ZmEyNjY0OGVjN2JmZTE5YWZhYmMwMzM=
9
+ YmEwOTcyZjA2MTdkZjc5ZjVlNTEwMmM3MTk4ODk3ZGVkY2RlM2RlZDJlNTZi
10
+ OTRmZjJhZDZlZjg2Yjc1OTVhMGQ5YzkzYmJhMjE3YjdhNzJlYzhjNjM0YjQx
11
+ NTcwNTQ0NTU5OWU1MzM2NTFlOGYwYzdkMzRmNzE5Y2NmZTUzNzY=
12
12
  data.tar.gz: !binary |-
13
- NWEzYTczNzZiYTUzOWUzMjlkYjNlOWIyMjJlMjM4OTA3YTE4MTkxMTYxMjRj
14
- NzRhYzNmZmZhZWQwM2ZhNDU5OGRmNTUwNzJjOTJiYTNkZGM3YTgwZGVmOWJh
15
- MmY3YzdkODUxOTcyZDQ2MjliY2MwNGJlZTg4NDFiNTE3ZGQyYzA=
13
+ MWFhNjE1ZWUzODgxNDZkNjhjYTcwMjg4NWE2Zjk3ZGZmYmFkODA4NmIyNjFi
14
+ YWFkNmEwZGU1ZWQxYTVkMzJhMTc1MTZkY2M4OGI5NDA4MmU0OTQxNzU3NGU3
15
+ ODBkY2IwZTdlMTBlYjFiYzlmMTM2YjE0M2JkOTI0Yzg1MWRkN2E=
data/lib/assembly_info.rb CHANGED
@@ -1,48 +1,49 @@
1
+ # vim: tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab
1
2
  module FubuRake
2
- class AssemblyInfo
3
- def self.create tasks, options
4
- if tasks.assembly_info == nil
5
- return nil
6
- end
7
-
8
- versionTask = Rake::Task.define_task :version do
9
- begin
10
- commit = `git log -1 --pretty=format:%H`
11
- rescue
12
- commit = "git unavailable"
13
- end
14
- puts "##teamcity[buildNumber '#{options[:build_number]}']" unless options[:tc_build_number].nil?
15
- puts "Version: #{options[:build_number]}" if options[:tc_build_number].nil?
16
-
17
- options = {
18
- :trademark => commit,
19
- :product_name => 'CHANGEME',
20
- :description => options[:build_number],
21
- :version => options[:asm_version],
22
- :file_version => options[:build_number],
23
- :informational_version => options[:asm_version],
24
- :copyright => 'CHANGEME',
25
- :output_file => 'src/CommonAssemblyInfo.cs'
26
- }
3
+ class AssemblyInfo
4
+ def self.create tasks, options
5
+ if tasks.assembly_info == nil
6
+ return nil
7
+ end
8
+
9
+ versionTask = Rake::Task.define_task :version do
10
+ begin
11
+ commit = `git log -1 --pretty=format:%H`
12
+ rescue
13
+ commit = "git unavailable"
14
+ end
15
+ puts "##teamcity[buildNumber '#{options[:build_number]}']" unless options[:tc_build_number].nil?
16
+ puts "Version: #{options[:build_number]}" if options[:tc_build_number].nil?
17
+
18
+ options = {
19
+ :trademark => commit,
20
+ :product_name => 'CHANGEME',
21
+ :description => options[:build_number],
22
+ :version => options[:asm_version],
23
+ :file_version => options[:build_number],
24
+ :informational_version => options[:asm_version],
25
+ :copyright => 'CHANGEME',
26
+ :output_file => 'src/CommonAssemblyInfo.cs'
27
+ }
27
28
 
28
- options = options.merge(tasks.assembly_info)
29
+ options = options.merge(tasks.assembly_info)
29
30
 
30
- File.open(options[:output_file], 'w') do |file|
31
- file.write "using System.Reflection;\n"
32
- file.write "using System.Runtime.InteropServices;\n"
33
- file.write "[assembly: AssemblyDescription(\"#{options[:description]}\")]\n"
34
- file.write "[assembly: AssemblyProduct(\"#{options[:product_name]}\")]\n"
35
- file.write "[assembly: AssemblyCopyright(\"#{options[:copyright]}\")]\n"
36
- file.write "[assembly: AssemblyTrademark(\"#{options[:trademark]}\")]\n"
37
- file.write "[assembly: AssemblyVersion(\"#{options[:version]}\")]\n"
38
- file.write "[assembly: AssemblyFileVersion(\"#{options[:file_version]}\")]\n"
39
- file.write "[assembly: AssemblyInformationalVersion(\"#{options[:informational_version]}\")]\n"
31
+ File.open(options[:output_file], 'w') do |file|
32
+ file.write "using System.Reflection;\n"
33
+ file.write "using System.Runtime.InteropServices;\n"
34
+ file.write "[assembly: AssemblyDescription(\"#{options[:description]}\")]\n"
35
+ file.write "[assembly: AssemblyProduct(\"#{options[:product_name]}\")]\n"
36
+ file.write "[assembly: AssemblyCopyright(\"#{options[:copyright]}\")]\n"
37
+ file.write "[assembly: AssemblyTrademark(\"#{options[:trademark]}\")]\n"
38
+ file.write "[assembly: AssemblyVersion(\"#{options[:version]}\")]\n"
39
+ file.write "[assembly: AssemblyFileVersion(\"#{options[:file_version]}\")]\n"
40
+ file.write "[assembly: AssemblyInformationalVersion(\"#{options[:informational_version]}\")]\n"
41
+ end
40
42
  end
43
+
44
+ versionTask.add_description "Update the version information for the build"
45
+
46
+ return versionTask
41
47
  end
42
-
43
- versionTask.add_description "Update the version information for the build"
44
-
45
- return versionTask
46
48
  end
47
- end
48
- end
49
+ end
data/lib/bottles.rb CHANGED
@@ -1,20 +1,21 @@
1
+ # vim: tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab
1
2
  module FubuRake
2
- class AssemblyBottle
3
- def initialize(project)
4
- @project = project
5
- end
6
-
7
- def create(options)
8
- cleaned_name = @project.gsub('.', '_').downcase
3
+ class AssemblyBottle
4
+ def initialize(project)
5
+ @project = project
6
+ end
7
+
8
+ def create(options)
9
+ cleaned_name = @project.gsub('.', '_').downcase
9
10
 
10
- name = "bottle_#{cleaned_name}"
11
- task = Rake::Task.define_task name do
12
- sh "bottles assembly-pak #{options[:source]}/#{@project} -p #{@project}.csproj"
11
+ name = "bottle_#{cleaned_name}"
12
+ task = Rake::Task.define_task name do
13
+ sh "bottles assembly-pak #{options[:source]}/#{@project} -p #{@project}.csproj"
13
14
 
14
- end
15
+ end
15
16
 
16
- task.add_description "Assembly bottle packing for #{@project}"
17
- Rake::Task[:compile].enhance [name]
17
+ task.add_description "Assembly bottle packing for #{@project}"
18
+ Rake::Task[:compile].enhance [name]
19
+ end
18
20
  end
19
- end
20
- end
21
+ end
data/lib/fubudocs.rb CHANGED
@@ -1,14 +1,15 @@
1
+ # vim: tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab
1
2
  namespace :docs do
2
3
  desc "Runs a documentation project hosted in FubuWorld"
3
4
  task :run do
4
5
  sh "fubudocs run -o"
5
6
  end
6
-
7
+
7
8
  desc "Runs the documentation projects in this solution in a 'watched' mode in Firefox"
8
9
  task :run_firefox do
9
10
  sh "fubudocs run --watched --browser Firefox"
10
11
  end
11
-
12
+
12
13
  desc "Runs the documentation projects in this solution in a 'watched' mode in Firefox"
13
14
  task :run_chrome do
14
15
  sh "fubudocs run --watched --browser Chrome"
@@ -27,10 +28,10 @@ end
27
28
 
28
29
 
29
30
 
30
- class FubuDocs
31
- attr_accessor :prefix, :branch, :export_dir
32
-
33
- def initialize(options)
31
+ class FubuDocs
32
+ attr_accessor :prefix, :branch, :export_dir
33
+
34
+ def initialize(options)
34
35
  # :host, :include, :nested, :dump
35
36
  @branch = options.fetch(:branch, 'gh-pages')
36
37
  @repository = options[:repository]
@@ -38,128 +39,126 @@ end
38
39
  @export_dir = options.fetch(:dir, 'fubudocs-export')
39
40
  @options = options
40
41
  end
41
-
42
+
42
43
  def export
43
- cmd = "fubudocs export #{@export_dir}"
44
- if (@options[:host] != nil)
45
- cmd += " --host #{@options[:host]}"
46
- end
47
-
48
- if (@options[:include] != nil)
49
- cmd += " -i #{@options[:include]}"
50
- end
51
-
52
- if (@options[:nested] == true)
53
- cmd += " -m GhPagesChildFolder"
54
- elsif (@options[:dump] == true)
55
- cmd += " -m HtmlDump"
56
- else
57
- cmd += ' -m GhPagesRooted'
58
- end
59
-
60
- sh cmd
44
+ cmd = "fubudocs export #{@export_dir}"
45
+ if (@options[:host] != nil)
46
+ cmd += " --host #{@options[:host]}"
47
+ end
48
+
49
+ if (@options[:include] != nil)
50
+ cmd += " -i #{@options[:include]}"
51
+ end
52
+
53
+ if (@options[:nested] == true)
54
+ cmd += " -m GhPagesChildFolder"
55
+ elsif (@options[:dump] == true)
56
+ cmd += " -m HtmlDump"
57
+ else
58
+ cmd += ' -m GhPagesRooted'
59
+ end
60
+
61
+ sh cmd
61
62
  end
62
-
63
+
63
64
  def clean
64
- cleanDirectory @export_dir
65
- Dir.delete @export_dir unless !Dir.exists?(@export_dir)
65
+ cleanDirectory @export_dir
66
+ Dir.delete @export_dir unless !Dir.exists?(@export_dir)
66
67
  end
67
-
68
+
68
69
  def create_branch
69
- sh "ripple gitignore #{@export_dir}"
70
-
71
- sh "git clone #{@repository} #{@export_dir}"
72
-
73
- Dir.chdir @export_dir
74
-
75
- sh "git checkout --orphan #{@branch}"
76
- sh "git rm -rf ."
77
-
78
- writeNoJekyll
79
-
80
- sh "git add ."
81
- sh 'git commit -a -m "initial clean slate"'
82
- sh 'git push origin #{@branch}'
83
-
84
- Dir.chdir '..'
70
+ sh "ripple gitignore #{@export_dir}"
71
+
72
+ sh "git clone #{@repository} #{@export_dir}"
73
+
74
+ Dir.chdir @export_dir
75
+
76
+ sh "git checkout --orphan #{@branch}"
77
+ sh "git rm -rf ."
78
+
79
+ writeNoJekyll
80
+
81
+ sh "git add ."
82
+ sh 'git commit -a -m "initial clean slate"'
83
+ sh 'git push origin #{@branch}'
84
+
85
+ Dir.chdir '..'
85
86
  end
86
-
87
+
87
88
  def writeNoJekyll
88
- output = File.new( ".nojekyll", "w+" )
89
- output << "Just a marker"
90
- output.close
89
+ output = File.new( ".nojekyll", "w+" )
90
+ output << "Just a marker"
91
+ output.close
91
92
  end
92
-
93
+
93
94
  def fetch_existing
94
- Dir.mkdir @export_dir
95
-
96
- # fetch the gh-pages branch from the server
97
- Dir.chdir @export_dir
98
- sh 'git init'
99
- sh "git remote add -t #{@branch} -f origin #{@repository}"
100
- sh "git checkout #{@branch}"
101
-
102
- # clean the existing content
103
- sleep 0.5 # let the file system try to relax its locks
104
- content_files = FileList['*.*'].exclude('.nojekyll').exclude('CNAME')
105
- content_files.each do |f|
106
- FileUtils.rm_r f
107
- end
108
-
109
- # do the actual export
110
- Dir.chdir '..'
95
+ Dir.mkdir @export_dir
96
+
97
+ # fetch the gh-pages branch from the server
98
+ Dir.chdir @export_dir
99
+ sh 'git init'
100
+ sh "git remote add -t #{@branch} -f origin #{@repository}"
101
+ sh "git checkout #{@branch}"
102
+
103
+ # clean the existing content
104
+ sleep 0.5 # let the file system try to relax its locks
105
+ content_files = FileList['*.*'].exclude('.nojekyll').exclude('CNAME')
106
+ content_files.each do |f|
107
+ FileUtils.rm_r f
108
+ end
109
+
110
+ # do the actual export
111
+ Dir.chdir '..'
111
112
  end
112
-
113
+
113
114
  def commit_new
114
- # commit and push the generated docs
115
- Dir.chdir @export_dir
116
-
117
- if !File.exists?('.nojekyll')
118
- writeNoJekyll
119
- end
120
-
121
- sh "git add ."
122
- sh 'git commit -a -m "Doc generation version ' + @options[:version] + '"' do |ok, res|
123
- if ok
124
- sh "git push origin #{@branch}"
125
- puts "Documentation generation and push to #{@repository}/#{@branch} is successful"
126
- else
127
- puts "commit failed, might be because there are no differences in the content"
115
+ # commit and push the generated docs
116
+ Dir.chdir @export_dir
117
+
118
+ if !File.exists?('.nojekyll')
119
+ writeNoJekyll
128
120
  end
129
- end
130
121
 
131
- Dir.chdir '..'
122
+ sh "git add ."
123
+ sh 'git commit -a -m "Doc generation version ' + @options[:version] + '"' do |ok, res|
124
+ if ok
125
+ sh "git push origin #{@branch}"
126
+ puts "Documentation generation and push to #{@repository}/#{@branch} is successful"
127
+ else
128
+ puts "commit failed, might be because there are no differences in the content"
129
+ end
130
+ end
131
+
132
+ Dir.chdir '..'
132
133
  end
133
-
134
+
134
135
  def export_tasks
135
136
  initTask = Rake::Task.define_task "#{@prefix}:init_branch" do
136
- clean
137
- create_branch
137
+ clean
138
+ create_branch
138
139
  end
139
-
140
+
140
141
  initTask.add_description "Initializes the #{@branch} branch in git repository #{@repository}"
141
-
142
+
142
143
  exportTaskName = "#{@prefix}:export"
143
144
  exportTask = Rake::Task.define_task exportTaskName do
144
- clean
145
- fetch_existing
146
- export
147
- commit_new
145
+ clean
146
+ fetch_existing
147
+ export
148
+ commit_new
148
149
  end
149
150
  exportTask.add_description "Export the generated documentation to #{@repository}/#{@branch}"
150
151
  #exportTask.enhance [:compile]
151
-
152
-
152
+
153
153
  return exportTaskName
154
154
  end
155
-
155
+
156
156
  def dump_task
157
- dumpTask = Rake::Task.define_task "#{@prefix}:dump" do
158
- clean
159
- @options[:dump] = true
160
- export
161
- end
162
- dumpTask.add_description "Export the generated documentation to #{@export_dir} for local usage"
157
+ dumpTask = Rake::Task.define_task "#{@prefix}:dump" do
158
+ clean
159
+ @options[:dump] = true
160
+ export
161
+ end
162
+ dumpTask.add_description "Export the generated documentation to #{@export_dir} for local usage"
163
163
  end
164
- end
165
-
164
+ end
data/lib/fuburake.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # vim: tabstop=4:softtabstop=4:shiftwidth=4:noexpandtab
1
2
  include FileUtils
2
3
  include FileTest
3
4
 
@@ -8,17 +9,18 @@ require_relative 'platform'
8
9
  require_relative 'ripple'
9
10
  require_relative 'assembly_info'
10
11
  require_relative 'bottles'
12
+ require_relative 'fubudocs'
11
13
 
12
14
  if File.exists?("VERSION.txt")
13
- load "VERSION.txt"
15
+ load "VERSION.txt"
14
16
  elsif ENV["BUILD_VERSION"] != nil
15
- BUILD_VERSION = ENV["BUILD_VERSION"]
17
+ BUILD_VERSION = ENV["BUILD_VERSION"]
16
18
  else
17
- BUILD_VERSION = "0.0.1"
19
+ BUILD_VERSION = "0.0.1"
18
20
  end
19
21
 
20
22
  module FubuRake
21
- class SolutionTasks
23
+ class SolutionTasks
22
24
  attr_accessor :clean,
23
25
  :compile,
24
26
  :assembly_info,
@@ -35,15 +37,15 @@ module FubuRake
35
37
  :doc_exports
36
38
 
37
39
  def initialize
38
- @options = {}
40
+ @options = {}
39
41
  @bottles = []
40
42
  @bottles_enabled = true
41
43
 
42
44
  solutions = Dir.glob('**/*.sln')
43
45
  if solutions.count == 1
44
- solutionfile = solutions[0]
46
+ solutionfile = solutions[0]
45
47
 
46
- @compile = {:solutionfile => solutionfile}
48
+ @compile = {:solutionfile => solutionfile}
47
49
  end
48
50
  end
49
51
 
@@ -64,411 +66,411 @@ module FubuRake
64
66
 
65
67
  @doc_exports << options
66
68
  end
67
- end
68
-
69
- class Solution
70
- attr_accessor :options, :compilemode, :build_number
71
-
72
- def initialize(&block)
73
- tasks = SolutionTasks.new
74
- block.call(tasks)
69
+ end
70
+
71
+ class Solution
72
+ attr_accessor :options, :compilemode, :build_number
73
+
74
+ def initialize(&block)
75
+ tasks = SolutionTasks.new
76
+ block.call(tasks)
75
77
 
76
- @defaultTask = create_task(:default, "**Default**, compiles and runs tests")
77
- @ciTask = create_task(:ci, "Target used for the CI server")
78
- @ciTask.enhance [:default]
79
-
80
- options = tasks.options
81
- options ||= {}
82
-
83
- tc_build_number = ENV["BUILD_NUMBER"]
84
- build_revision = tc_build_number || Time.new.strftime('5%H%M')
85
- asm_version = BUILD_VERSION + ".0"
86
- @build_number = "#{BUILD_VERSION}.#{build_revision}"
87
-
88
- # SAMPLE: fuburake-options
89
- @options = {
90
- :compilemode => ENV['config'].nil? ? "Debug" : ENV['config'],
91
- :clrversion => 'v4.0.30319',
92
- :platform => ENV['platform'].nil? ? "" : ENV['platform'],
93
- :unit_test_list_file => 'TESTS.txt',
94
- :unit_test_projects => [],
95
- :build_number => @build_number,
96
- :asm_version => asm_version,
97
- :tc_build_number => tc_build_number,
98
- :build_revision => build_revision,
99
- :source => 'src'}.merge(options)
100
- # ENDSAMPLE
101
-
102
- @compilemode = @options[:compilemode]
103
-
104
- tasks.clean ||= []
105
- tasks.defaults ||= []
106
- tasks.ci_steps ||= []
107
- tasks.precompile ||= []
108
- tasks.doc_exports ||= []
109
-
78
+ @defaultTask = create_task(:default, "**Default**, compiles and runs tests")
79
+ @ciTask = create_task(:ci, "Target used for the CI server")
80
+ @ciTask.enhance [:default]
81
+
82
+ options = tasks.options
83
+ options ||= {}
84
+
85
+ tc_build_number = ENV["BUILD_NUMBER"]
86
+ build_revision = tc_build_number || Time.new.strftime('5%H%M')
87
+ asm_version = BUILD_VERSION + ".0"
88
+ @build_number = "#{BUILD_VERSION}.#{build_revision}"
110
89
 
111
- enable_docs tasks
112
- FubuRake::AssemblyInfo.create tasks, @options
113
- FubuRake::Ripple.create tasks, @options
114
- make_clean tasks
115
- FubuRake::MSBuild.create_task tasks, @options
116
- FubuRake::NUnit.create_task tasks, @options
90
+ # SAMPLE: fuburake-options
91
+ @options = {
92
+ :compilemode => ENV['config'].nil? ? "Debug" : ENV['config'],
93
+ :clrversion => 'v4.0.30319',
94
+ :platform => ENV['platform'].nil? ? "" : ENV['platform'],
95
+ :unit_test_list_file => 'TESTS.txt',
96
+ :unit_test_projects => [],
97
+ :build_number => @build_number,
98
+ :asm_version => asm_version,
99
+ :tc_build_number => tc_build_number,
100
+ :build_revision => build_revision,
101
+ :source => 'src'}.merge(options)
102
+ # ENDSAMPLE
103
+
104
+ @compilemode = @options[:compilemode]
105
+
106
+ tasks.clean ||= []
107
+ tasks.defaults ||= []
108
+ tasks.ci_steps ||= []
109
+ tasks.precompile ||= []
110
+ tasks.doc_exports ||= []
117
111
 
118
- add_dependency :compile, [:clean, :version, 'ripple:restore', 'docs:bottle']
112
+ enable_docs tasks
113
+ FubuRake::AssemblyInfo.create tasks, @options
114
+ FubuRake::Ripple.create tasks, @options
115
+ make_clean tasks
116
+ FubuRake::MSBuild.create_task tasks, @options
117
+ FubuRake::NUnit.create_task tasks, @options
119
118
 
120
- Rake::Task[:compile].enhance(tasks.precompile)
121
- add_dependency :unit_test, :compile
122
- add_dependency :default, [:compile, :unit_test]
123
- add_dependency :default, :unit_test
124
- Rake::Task[:default].enhance tasks.defaults
125
- Rake::Task[:ci].enhance tasks.ci_steps
126
- add_dependency :ci, tasks.ci_steps
127
- add_dependency :ci, ["ripple:history", "ripple:package"]
119
+ add_dependency :compile, [:clean, :version, 'ripple:restore', 'docs:bottle']
128
120
 
129
- tasks.compilations ||= []
130
- tasks.compilations.each do |c|
131
- c.create @options
132
- end
133
-
134
-
135
-
136
- if tasks.bottles.empty? && tasks.bottles_enabled
137
- Dir.glob('**/.package-manifest').each do |f|
138
- dir = File.dirname(f)
139
- project = dir.split('/').last
140
- if project.index('.Docs') == nil
141
- proj_file = "#{dir}/#{project}.csproj"
142
- if File.exists?(proj_file)
143
- tasks.bottles << FubuRake::AssemblyBottle.new(project)
144
- end
145
- end
121
+ Rake::Task[:compile].enhance(tasks.precompile)
122
+ add_dependency :unit_test, :compile
123
+ add_dependency :default, [:compile, :unit_test]
124
+ add_dependency :default, :unit_test
125
+ Rake::Task[:default].enhance tasks.defaults
126
+ Rake::Task[:ci].enhance tasks.ci_steps
127
+ add_dependency :ci, tasks.ci_steps
128
+ add_dependency :ci, ["ripple:history", "ripple:package"]
146
129
 
147
- end
148
- end
149
-
150
- if !tasks.bottles.empty?
151
- tasks.bottles.each do |c|
152
- c.create @options
153
- end
154
- end
155
-
156
- tasks.doc_exports.each do |opts|
157
- opts[:version] = @build_number
130
+ tasks.compilations ||= []
131
+ tasks.compilations.each do |c|
132
+ c.create @options
133
+ end
134
+
135
+ if tasks.bottles.empty? && tasks.bottles_enabled
136
+ Dir.glob('**/.package-manifest').each do |f|
137
+ dir = File.dirname(f)
138
+ project = dir.split('/').last
139
+ if project.index('.Docs') == nil
140
+ proj_file = "#{dir}/#{project}.csproj"
141
+ if File.exists?(proj_file)
142
+ tasks.assembly_bottle File.basename(project)
143
+ end
144
+ end
145
+ end
146
+ end
158
147
 
159
- docs = FubuDocs.new(opts)
148
+ if !tasks.bottles.empty?
149
+ tasks.bottles.each do |c|
150
+ c.create @options
151
+ end
152
+ end
153
+
154
+ tasks.doc_exports.each do |opts|
155
+ opts[:version] = @build_number
160
156
 
161
- doc_task_name = docs.export_tasks
162
- if opts[:include_in_ci]
163
- add_dependency :ci, doc_task_name
164
- end
165
- end
166
-
167
- end
157
+ docs = FubuDocs.new(opts)
158
+
159
+ doc_task_name = docs.export_tasks
160
+ if opts[:include_in_ci]
161
+ add_dependency :ci, doc_task_name
162
+ end
163
+ end
168
164
 
169
- def add_dependency(from, to)
170
- if to.kind_of?(Array)
171
- to.each do |dep|
172
- add_dependency from, dep
173
165
  end
174
- end
175
166
 
176
- if !Rake::Task.task_defined?(from)
177
- return
178
- end
179
-
180
- if !Rake::Task.task_defined?(to)
181
- return
182
- end
183
-
184
- Rake::Task[from].enhance [to]
185
- end
167
+ def add_dependency(from, to)
168
+ if to.kind_of?(Array)
169
+ to.each do |dep|
170
+ add_dependency from, dep
171
+ end
172
+ end
186
173
 
187
- def create_task(name, description)
188
- task = Rake::Task.define_task name do
189
-
190
- end
191
- task.add_description description
192
-
193
- return task
194
- end
174
+ if !Rake::Task.task_defined?(from)
175
+ return
176
+ end
177
+
178
+ if !Rake::Task.task_defined?(to)
179
+ return
180
+ end
181
+
182
+ Rake::Task[from].enhance [to]
183
+ end
184
+
185
+ def create_task(name, description)
186
+ task = Rake::Task.define_task name do
187
+
188
+ end
189
+ task.add_description description
190
+
191
+ return task
192
+ end
195
193
 
196
- def make_clean(tasks)
197
- if tasks.clean.any?
198
- @cleanTask = Rake::Task.define_task :clean do
199
- tasks.clean.each do |dir|
200
- cleanDirectory dir
201
- end
194
+ def make_clean(tasks)
195
+ if tasks.clean.any?
196
+ @cleanTask = Rake::Task.define_task :clean do
197
+ tasks.clean.each do |dir|
198
+ cleanDirectory dir
199
+ end
200
+ end
201
+
202
+ @cleanTask.add_description "Prepares the working directory for a new build"
203
+ end
202
204
  end
203
-
204
- @cleanTask.add_description "Prepares the working directory for a new build"
205
- end
206
- end
207
205
 
208
206
 
209
- def enable_docs(tasks)
210
- if tasks.fubudocs_enabled
211
- if Platform.is_nix
212
- Dir.glob('**/*.Docs.csproj').each do |f|
213
- tasks.assembly_bottle File.basename(f, ".csproj")
214
- end
215
- else
216
- require_relative 'fubudocs'
207
+ def enable_docs(tasks)
208
+ if tasks.fubudocs_enabled
209
+ if Platform.is_nix
210
+ Dir.glob('**/*.Docs.csproj').each do |f|
211
+ tasks.assembly_bottle File.basename(f, ".csproj")
212
+ end
213
+ else
214
+ require_relative 'fubudocs'
215
+ end
216
+ end
217
217
  end
218
-
219
-
220
- end
221
- end
222
218
 
223
- def dump_html(options)
224
- options[:version] = @build_number
225
- docs = FubuDocs.new(options)
226
- docs.dump_task
227
- end
228
- end
229
-
230
- class MvcApp
231
- def initialize(options)
232
- cleaned_name = options[:name].gsub('.', '_').downcase
233
- run_args = "--directory #{options[:directory]}"
234
-
235
- if options.has_key?(:application)
236
- run_args += " --application #{options[:application]}
237
- end
238
-
239
- if options.has_key?(:build)
240
- run_args += " --build #{options[:build]}"
241
- end
242
-
243
- task = Rake::Task.define_task "#{cleaned_name}:alias" do
244
- sh "bottles alias #{cleaned_name} #{options[:directory]}"
245
- end
246
- task.add_description "Add the alias for #{options[:directory]}"
247
- Rake::Task[:default].enhance ["#{cleaned_name}:alias"]
248
-
249
-
250
- to_task "#{cleaned_name}:restart", "restart #{cleaned_name}", "touch the web.config file to force ASP.Net hosting to recycle"
251
- to_task "#{cleaned_name}:run", "run #{run_args} --open", "run the application with Katana hosting"
252
- to_task "#{cleaned_name}:firefox", "run #{run_args} --browser Firefox --watched", "run the application with Katana hosting and 'watch' the application w/ Firefox"
253
- to_task "#{cleaned_name}:chrome", "run #{run_args} --browser Chrome --watched", "run the application with Katana hosting and 'watch' the application w/ Chrome"
254
-
219
+ def dump_html(options)
220
+ options[:version] = @build_number
221
+ docs = FubuDocs.new(options)
222
+ docs.dump_task
223
+ end
255
224
  end
256
225
 
257
- def to_task(name, args, description)
258
- task = Rake::Task.define_task name do
259
- sh "fubu #{args}"
260
- end
226
+ class MvcApp
227
+ def initialize(options)
228
+ cleaned_name = options[:name].gsub('.', '_').downcase
229
+ run_args = "--directory #{options[:directory]}"
230
+
231
+ if options.has_key?(:application)
232
+ run_args += " --application #{options[:application]}
233
+ end
234
+
235
+ if options.has_key?(:build)
236
+ run_args += " --build #{options[:build]}"
237
+ end
238
+
239
+ task = Rake::Task.define_task "#{cleaned_name}:alias" do
240
+ sh "bottles alias #{cleaned_name} #{options[:directory]}"
241
+ end
242
+ task.add_description "Add the alias for #{options[:directory]}"
243
+ Rake::Task[:default].enhance ["#{cleaned_name}:alias"]
244
+
245
+
246
+ to_task "#{cleaned_name}:restart", "restart #{cleaned_name}", "touch the web.config file to force ASP.Net hosting to recycle"
247
+ to_task "#{cleaned_name}:run", "run #{run_args} --open", "run the application with Katana hosting"
248
+ to_task "#{cleaned_name}:firefox", "run #{run_args} --browser Firefox --watched", "run the application with Katana hosting and 'watch' the application w/ Firefox"
249
+ to_task "#{cleaned_name}:chrome", "run #{run_args} --browser Chrome --watched", "run the application with Katana hosting and 'watch' the application w/ Chrome"
261
250
 
262
- task.add_description description
263
- return task
264
- end
265
- end
266
-
267
-
268
- class BottleServices
269
- def initialize(options)
270
- @directory = options[:dir]
271
- @prefix = options.fetch(:prefix, 'service')
272
- @command = File.join(@directory, 'BottleServiceRunner')
273
-
274
- consoleTask = Rake::Task.define_task "#{@prefix}:console" do
275
- sh "start #{@command}"
276
- end
277
- consoleTask.add_description "Run service in console at #{@directory}"
278
-
279
- to_task 'install', to_install_args(options), "Install the service locally"
280
- to_task 'start', to_start_stop_args('start', options), "Start the service locally"
281
- to_task 'stop', to_start_stop_args('stop', options), "Stop the service locally"
282
- to_task 'uninstall', to_start_stop_args('uninstall', options), "Stop the service locally"
283
-
284
- cleanTask = Rake::Task.define_task "#{@prefix}:clean" do
285
- dir = File.join(@directory, 'fubu-content')
286
- cleanDirectory dir
287
- end
288
- cleanTask.add_description "Cleans out any exploded bottle content at fubu-content"
289
- end
290
-
291
- def to_start_stop_args(verb, options)
292
- args = "#{verb}"
293
-
294
- if (options[:name] != nil)
295
- args += " -servicename:#{options[:name]}"
296
251
  end
252
+
253
+ def to_task(name, args, description)
254
+ task = Rake::Task.define_task name do
255
+ sh "fubu #{args}"
256
+ end
297
257
 
298
- if (options[:instance] != nil)
299
- args += " -i:#{options[:instance]}"
258
+ task.add_description description
259
+ return task
300
260
  end
261
+ end
262
+
263
+
264
+ class BottleServices
265
+ def initialize(options)
266
+ @directory = options[:dir]
267
+ @prefix = options.fetch(:prefix, 'service')
268
+ @command = File.join(@directory, 'BottleServiceRunner.exe')
301
269
 
302
- return args
303
- end
304
-
305
- def to_install_args(options)
306
- args = "install";
270
+ consoleTask = Rake::Task.define_task "#{@prefix}:console" do
271
+ sh "#{Platform.start(Platform.runtime(@command))}"
272
+ end
273
+ consoleTask.add_description "Run service in console at #{@directory}"
307
274
 
308
- if (options[:name] != nil)
309
- args += " -servicename:#{options[:name]}"
310
- end
275
+ to_task 'install', to_install_args(options), "Install the service locally"
276
+ to_task 'start', to_start_stop_args('start', options), "Start the service locally"
277
+ to_task 'stop', to_start_stop_args('stop', options), "Stop the service locally"
278
+ to_task 'uninstall', to_start_stop_args('uninstall', options), "Stop the service locally"
311
279
 
312
- if (options[:instance] != nil)
313
- args += " -i:#{options[:instance]}"
280
+ cleanTask = Rake::Task.define_task "#{@prefix}:clean" do
281
+ dir = File.join(@directory, 'fubu-content')
282
+ cleanDirectory dir
283
+ end
284
+ cleanTask.add_description "Cleans out any exploded bottle content at fubu-content"
314
285
  end
315
286
 
316
- if (options[:user] != nil)
317
- args += " -u:#{options[:user]}"
287
+ def to_start_stop_args(verb, options)
288
+ args = "#{verb}"
289
+
290
+ if (options[:name] != nil)
291
+ args += " -servicename:#{options[:name]}"
292
+ end
293
+
294
+ if (options[:instance] != nil)
295
+ args += " -i:#{options[:instance]}"
296
+ end
297
+
298
+ return args
318
299
  end
300
+
301
+ def to_install_args(options)
302
+ args = "install";
303
+
304
+ if (options[:name] != nil)
305
+ args += " -servicename:#{options[:name]}"
306
+ end
307
+
308
+ if (options[:instance] != nil)
309
+ args += " -i:#{options[:instance]}"
310
+ end
311
+
312
+ if (options[:user] != nil)
313
+ args += " -u:#{options[:user]}"
314
+ end
319
315
 
320
- if (options[:password] != nil)
321
- args += " -p:#{options[:password]}"
322
- end
316
+ if (options[:password] != nil)
317
+ args += " -p:#{options[:password]}"
318
+ end
323
319
 
324
- if (options[:autostart] == true)
325
- args += " --autostart"
326
- end
320
+ if (options[:autostart] == true)
321
+ args += " --autostart"
322
+ end
327
323
 
328
- if (options[:manual] == true)
329
- args += " --manual"
330
- end
324
+ if (options[:manual] == true)
325
+ args += " --manual"
326
+ end
331
327
 
332
- if (options[:disabled] == true)
333
- args += " --disabled"
334
- end
328
+ if (options[:disabled] == true)
329
+ args += " --disabled"
330
+ end
335
331
 
336
- if (options[:delayed] == true)
337
- args += " --delayed"
338
- end
332
+ if (options[:delayed] == true)
333
+ args += " --delayed"
334
+ end
339
335
 
340
- if (options[:local_service] == true)
341
- args += " --localservice"
342
- end
336
+ if (options[:local_service] == true)
337
+ args += " --localservice"
338
+ end
343
339
 
344
- if (options[:network_service] == true)
345
- args += " --networkservice"
346
- end
340
+ if (options[:network_service] == true)
341
+ args += " --networkservice"
342
+ end
343
+
344
+ if (options[:interactive] == true)
345
+ args += " --interactive"
346
+ end
347
+
348
+ if (options[:description] != nil)
349
+ args += ' -d:"' + options[:description] + "'"
350
+ end
347
351
 
348
- if (options[:interactive] == true)
349
- args += " --interactive"
352
+ return args
350
353
  end
351
354
 
352
- if (options[:description] != nil)
353
- args += ' -d:"' + options[:description] + "'"
355
+ def to_task(name, args, description)
356
+ task = Rake::Task.define_task "#{@prefix}:#{name}" do
357
+ sh "#{@command} #{args}"
358
+ end
359
+
360
+ task.add_description description
361
+ return task
354
362
  end
363
+ end
355
364
 
356
- return args
357
- end
358
-
359
- def to_task(name, args, description)
360
- task = Rake::Task.define_task "#{@prefix}:#{name}" do
361
- sh "#{@command} #{args}"
362
- end
363
-
364
- task.add_description description
365
- return task
366
- end
367
- end
368
-
369
365
 
370
366
  class Storyteller
371
- def initialize(options)
372
- # :path
373
- # :compilemode -- take it from @solution.compiletarget
374
- # :results
375
- # :workspace
376
- # :profile
377
- # :title
378
- # :source
379
- # :prefix
380
- # :st_path
381
- # :specs
382
-
383
- @directory = options[:dir]
384
- @prefix = options.fetch(:prefix, 'st')
385
- @src = options.fetch(:source, 'src')
386
- @results = options.fetch(:results, 'results.htm')
387
- @st_path = options.fetch(:st_path, "#{@src}/packages/Storyteller2/tools")
388
- @title = options.fetch(:title, 'Storyteller Specs')
389
- @specs = options.fetch(:specs, 'specs')
390
- @suites = options.fetch(:suites, [])
367
+ def initialize(options)
368
+ # :path
369
+ # :compilemode -- take it from @solution.compiletarget
370
+ # :results
371
+ # :workspace
372
+ # :profile
373
+ # :title
374
+ # :source
375
+ # :prefix
376
+ # :st_path
377
+ # :specs
378
+
379
+ @directory = options[:dir]
380
+ @prefix = options.fetch(:prefix, 'st')
381
+ @src = options.fetch(:source, 'src')
382
+ @results = options.fetch(:results, 'results.htm')
383
+ @st_path = options.fetch(:st_path, "#{@src}/packages/Storyteller2/tools")
384
+ @title = options.fetch(:title, 'Storyteller Specs')
385
+ @specs = options.fetch(:specs, 'specs')
386
+ @suites = options.fetch(:suites, [])
391
387
 
392
- to_task 'run', 'ST.exe', "run #{to_args(options, @results)}", "Run the Storyteller tests for #{@directory}"
393
- to_task 'specs', 'ST.exe', "specs #{to_args(options, @specs)} --title \"#{@title}\"", "dump the specs for Storyteller tests at #{@directory}"
394
-
395
- @suites.each do |s|
396
- to_task "run:#{s.downcase}", 'ST.exe', "run #{to_args(options, @results)} -w #{s}", "Run the Storyteller tests for suite #{s}"
388
+ to_task 'run', 'ST.exe', "run #{to_args(options, @results)}", "Run the Storyteller tests for #{@directory}"
389
+ to_task 'specs', 'ST.exe', "specs #{to_args(options, @specs)} --title \"#{@title}\"", "dump the specs for Storyteller tests at #{@directory}"
390
+
391
+ @suites.each do |s|
392
+ to_task "run:#{s.downcase}", 'ST.exe', "run #{to_args(options, @results)} -w #{s}", "Run the Storyteller tests for suite #{s}"
393
+ end
394
+
395
+ if !Platform.is_nix
396
+ # StoryTellerUI.exe is a WPF application which is
397
+ # not supported on nix and therefore setting up the task
398
+ # is pointless.
399
+ openTask = Rake::Task.define_task "#{@prefix}:open" do
400
+ tool = 'StoryTellerUI.exe'
401
+ cmd = Platform.runtime("#{File.join(@st_path, tool)}") + " #{to_args(options, @results)}"
402
+ puts "Opening the Storyteller UI to #{@directory}"
403
+ sh cmd
404
+ end
405
+ openTask.add_description "Open the Storyteller UI for tests at #{@directory}"
406
+ openTask.enhance [:compile]
407
+ end
397
408
  end
398
409
 
399
- openTask = Rake::Task.define_task "#{@prefix}:open" do
400
- tool = 'StorytellerUI.exe'
401
- cmd = "start #{File.join(@st_path, tool)} #{to_args(options, @results)}"
402
- puts "Opening the Storyteller UI to #{@directory}"
403
- sh cmd
404
- end
405
- openTask.add_description "Open the Storyteller UI for tests at #{@directory}"
406
- openTask.enhance [:compile]
407
- end
408
-
409
-
410
- def to_task(name, tool, args, description)
411
- task = Rake::Task.define_task "#{@prefix}:#{name}" do
412
- sh "#{File.join(@st_path, tool)} #{args}"
413
- end
414
-
415
- task.add_description description
416
- task.enhance [:compile]
417
-
418
- return task
419
- end
420
-
421
- def to_args(options, output)
422
- args = "#{options[:path]} #{output}"
423
-
424
- if (options[:compilemode] != nil)
425
- args += " --compile #{options[:compilemode]}"
426
- end
427
410
 
428
- if (options[:workspace] != nil)
429
- args += " --workspace #{options[:workspace]}"
430
- end
411
+ def to_task(name, tool, args, description)
412
+ task = Rake::Task.define_task "#{@prefix}:#{name}" do
413
+ sh Platform.runtime("#{File.join(@st_path, tool)}") + " #{args}"
414
+ end
431
415
 
432
- if (options[:profile] != nil)
433
- args += " --profile #{options[:profile]}"
416
+ task.add_description description
417
+ task.enhance [:compile]
418
+
419
+ return task
434
420
  end
435
421
 
436
- return args
437
- end
422
+ def to_args(options, output)
423
+ args = "#{options[:path]} #{output}"
424
+
425
+ if (options[:compilemode] != nil)
426
+ args += " --compile #{options[:compilemode]}"
427
+ end
428
+
429
+ if (options[:workspace] != nil)
430
+ args += " --workspace #{options[:workspace]}"
431
+ end
432
+
433
+ if (options[:profile] != nil)
434
+ args += " --profile #{options[:profile]}"
435
+ end
436
+
437
+ return args
438
+ end
438
439
  end
439
440
  end
440
441
 
441
442
 
442
443
 
443
444
 
445
+
444
446
  def copyOutputFiles(fromDir, filePattern, outDir)
445
- Dir.glob(File.join(fromDir, filePattern)){|file|
446
- copy(file, outDir) if File.file?(file)
447
- }
447
+ Dir.glob(File.join(fromDir, filePattern)){|file|
448
+ copy(file, outDir) if File.file?(file)
449
+ }
448
450
  end
449
451
 
450
452
  def waitfor(&block)
451
- checks = 0
452
- until block.call || checks >10
453
- sleep 0.5
454
- checks += 1
455
- end
456
- raise 'waitfor timeout expired' if checks > 10
453
+ checks = 0
454
+ until block.call || checks >10
455
+ sleep 0.5
456
+ checks += 1
457
+ end
458
+ raise 'waitfor timeout expired' if checks > 10
457
459
  end
458
460
 
459
461
  def cleanDirectory(dir)
460
- if exists?(dir)
461
- puts 'Cleaning directory ' + dir
462
- FileUtils.rm_rf dir;
463
- waitfor { !exists?(dir) }
464
- end
465
-
466
- if dir == 'artifacts'
467
- Dir.mkdir 'artifacts'
468
- end
462
+ if exists?(dir)
463
+ puts 'Cleaning directory ' + dir
464
+ FileUtils.rm_rf dir;
465
+ waitfor { !exists?(dir) }
466
+ end
467
+
468
+ if dir == 'artifacts'
469
+ Dir.mkdir 'artifacts'
470
+ end
469
471
  end
470
472
 
471
473
  def cleanFile(file)
472
- File.delete file unless !File.exist?(file)
474
+ File.delete file unless !File.exist?(file)
473
475
  end
474
476