5 # Get the version string
9 eval IO.read("Version")
15 d = sprintf("%04d%02d%02d", year, month, day)
17 #File.open("Version", "w") { |fp|
18 # fp.print "version = \"#{version}\"\n"
19 # fp.print "date = \"#{d}\"\n"
22 # verstr = "v#{ver} #{build}"
24 yrange = (year > 2008 ? "2008-#{year}" : "2008")
26 def modify_file(name, &block)
27 ary = IO.readlines(name) rescue return
29 ary.each_with_index { |s, i|
30 s1 = block.call(s.dup)
37 File.rename(name, name + "~")
38 open(name, "wb") { |fp|
39 ary.each { |s| fp.write(s) }
41 File.delete(name + "~")
46 nm = "build-xcode/Molby-Info.plist"
50 s.sub(/[-0-9]+ Toshi Nagata/, "#{yrange} Toshi Nagata")
51 elsif s =~ /Version \d+\.\d+/
52 "\t<string>Version #{ver}</string>\n"
55 "\t<string>#{verstr}</string>\n"
57 version = (s =~ /\bCFBundleVersion\b/)
62 # Modify_MacLegacy Info.plist
63 nm = "build-xcode/Molby_MacLegacy-Info.plist"
67 s.sub(/[-0-9]+ Toshi Nagata/, "#{yrange} Toshi Nagata")
68 elsif s =~ /Version \d+\.\d+/
69 "\t<string>Version #{ver}</string>\n"
72 "\t<string>#{verstr}</string>\n"
74 version = (s =~ /\bCFBundleVersion\b/)
79 # Modify InfoPlist.strings
80 Dir["xcode-build/*.lproj/InfoPlist.strings"].each { |nm|
82 s = s.kconv(Kconv::UTF8, Kconv::UTF16)
83 if s =~ /Copyright/ && s.sub!(/Toshi Nagata, [-0-9]+/, "Toshi Nagata, #{yrange}")
84 s = s.kconv(Kconv::UTF16, Kconv::UTF8)
92 modify_file("build-win/molby64.iss") { |s|
93 if s =~ /AppVerName/ && s.sub!(/\(.*\)*/, "(#{verstr})")
100 modify_file("build-win32/molby32.iss") { |s|
101 if s =~ /AppVerName/ && s.sub!(/\(.*\)*/, "(#{verstr})")
109 modify_file("wxSources/MyVersion.c") { |s|
110 if s =~ /Version/ && s.sub!(/\".*\"/, "\"#{verstr}\"")
112 elsif s =~ /Copyright/ && s =~ /Toshi Nagata/ && s.sub!(/\d\d\d\d(-\d\d\d\d)?/, yrange)
119 # Modify doc_source.html
120 modify_file("Documents/src/doc_source.html") { |s|
121 if s =~ /Version/ && s =~ /<!-- version -->/ && s.sub!(/[Vv][-.0-9 A-Za-z_]*/, "Version #{ver}")
123 elsif s =~ /<!-- copyright -->/ && s.sub!(/\d\d\d\d(-\d\d\d\d)?/, yrange)
131 modify_file("README") { |s|
132 if s =~ / Version/ && s.sub!(/[Vv][-.0-9 A-Za-z_]*/, "Version #{ver}")
134 elsif s =~ / Copyright/ && s =~ /Toshi Nagata/ && s.sub!(/\d\d\d\d(-\d\d\d\d)?/, yrange)