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
|