Class: FubuRake::AssemblyInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/assembly_info.rb

Class Method Summary collapse

Class Method Details

.create(tasks, options) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/assembly_info.rb', line 4

def self.create tasks, options
	if tasks.assembly_info == nil
		return nil
	end

	versionTask = Rake::Task.define_task :version do
		begin
			commit = `git log -1 --pretty=format:%H`
		rescue
			commit = "git unavailable"
		end
		puts "##teamcity[buildNumber '#{options[:build_number]}']" unless options[:tc_build_number].nil?
		puts "Version: #{options[:build_number]}" if options[:tc_build_number].nil?

		options = {
			:trademark => commit,
			:product_name => 'CHANGEME',
			:description => options[:build_number],
			:version => options[:asm_version],
			:file_version => options[:build_number],
			:informational_version => options[:asm_version],
			:copyright => 'CHANGEME',
			:output_file => 'src/CommonAssemblyInfo.cs'
		}
	
		options = options.merge(tasks.assembly_info)
	
		File.open(options[:output_file], 'w') do |file|
			file.write "using System.Reflection;\n"
			file.write "using System.Runtime.InteropServices;\n"
			file.write "[assembly: AssemblyDescription(\"#{options[:description]}\")]\n"
			file.write "[assembly: AssemblyProduct(\"#{options[:product_name]}\")]\n"
			file.write "[assembly: AssemblyCopyright(\"#{options[:copyright]}\")]\n"
			file.write "[assembly: AssemblyTrademark(\"#{options[:trademark]}\")]\n"
			file.write "[assembly: AssemblyVersion(\"#{options[:version]}\")]\n"
			file.write "[assembly: AssemblyFileVersion(\"#{options[:file_version]}\")]\n"
			file.write "[assembly: AssemblyInformationalVersion(\"#{options[:informational_version]}\")]\n"
		end
	end

	versionTask.add_description "Update the version information for the build"

	return versionTask
end