Remove IVT from System.ServiceModel on MonoDroid, MonoTouch profiles.
[mono.git] / mcs / class / Mono.Cecil / CodeGen / cecil-update-rev
1 #!/usr/bin/env ruby
2
3 svn = "svn+ssh://mono-cvs.ximian.com/source/"
4 info = "Mono.Cecil/AssemblyInfo.cs"
5
6 $rev = 0
7
8 IO::popen("svn info #{svn}").each { |line|
9         $rev = $1.to_i if line =~ /^Revision: ([0-9]+)/
10 }
11
12 if $rev == 0
13         puts "Cannot get last revision"
14         exit(1)
15 end
16
17 def read_file(file)
18         content = ""
19         f = File.new(file, File::CREAT | File::RDONLY)
20         content << f.readlines.join
21         f.close
22
23         return content
24 end
25
26 def write_file(file, content)
27         File.open(file, File::CREAT | File::WRONLY) { |f|
28                 f.write(content)
29         }
30 end
31
32 def patch_info(content)
33         patched = ""
34         content.each_line { |line|
35                 if not line =~ /AssemblyVersion/
36                         patched << line
37                 else
38                         patched << line.gsub(/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/) {
39                                 next_rev = $rev.next
40                                 cut = 10000
41                                 build_rev = (next_rev / cut).ceil
42                                 revision = next_rev - (build_rev * cut)
43                                 build = (($3.to_i / 100).ceil * 100) + build_rev
44                                 "#{$1.to_s}.#{$2.to_s}.#{build.to_s}.#{(revision).to_s}"
45                         }
46                 end
47         }
48         return patched
49 end
50
51 write_file(info, patch_info(read_file(info)))