Develop and Download Open Source Software

Browse CVS Repository

Contents of /exerb/exerb/src/prepare18.rb

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.4 - (show annotations) (download)
Sun Jun 17 14:47:11 2007 UTC (16 years, 9 months ago) by arton
Branch: MAIN
CVS Tags: release510, release500, release520, release420, ChangeLog, release461, release430, release450, release480, release470, release440, release530, release490, release460, release540, HEAD
Changes since 1.3: +4 -2 lines
ruby-1.8.6-p36 exerb-4.2.0.0

1 #!/usr/bin/evn ruby
2 # $Id: prepare18.rb,v 1.3 2007/03/17 20:21:26 arton Exp $
3 =begin
4 - libexerb/libexerb.dsp 内の出力ファイル名を更新
5 - ruby18c, ruby18crt, ruby18g, ruby18grt 内の出力ファイル名を更新
6 - ../lib/exerb/config.rb 内の入力ファイル名を更新
7 =end
8 require 'fileutils'
9
10 if ARGV.length == 0 || !(/\d\d/ =~ ARGV[0])
11 STDERR.puts 'usage: ruby prepare18.rb ?? (?? --- exerb??.dll)'
12 exit 1
13 end
14
15 /(\d).(\d).(\d)/ =~ RUBY_VERSION
16 VER = $1 + $2 + $3
17 puts "version=#{VER}, release=#{ARGV[0]}"
18
19 PROJECT = [
20 'ruby18c/ruby18c.dsp',
21 'ruby18crt/ruby18crt.dsp',
22 'ruby18g/ruby18g.dsp',
23 'ruby18grt/ruby18grt.dsp',
24 '../lib/exerb/config.rb',
25 '../test/testcase.rb',
26 ]
27
28 class Dsp
29 def initialize(name, version, regex)
30 @name = name
31 @version = version
32 @regex = regex
33 @file_name = "tmp.#{Process.pid}"
34 @file = File.open(@file_name, 'w')
35 end
36
37 def write
38 f = File.open(@name, 'r')
39 f.each_line do |line|
40 if @regex =~ line
41 line.gsub!($1, @version)
42 end
43 @file.puts line
44 end
45 f.close
46 end
47
48 def close
49 internal_close
50 FileUtils.cp(@name, "#{@name}.bak")
51 FileUtils.mv(@file_name, @name)
52 end
53
54 def discard
55 internal_close
56 FileUtils.rm_f(@file_name)
57 end
58
59 def internal_close
60 begin
61 @file.close
62 rescue
63 end
64 end
65
66 end
67
68 class ExcDsp < Dsp
69 def initialize(name, target = VER[2..2], regex = Regexp.new("ruby#{VER[0..1]}(\\d)\\w+.exc"))
70 super
71 end
72 end
73
74 exerb = Dsp.new('libexerb/libexerb.dsp', ARGV[0], /exerb(\d\d)\.dll/)
75 begin
76 exerb.write
77 exerb.close
78 rescue
79 STDERR.puts $!.message
80 exerb.discard
81 exit 2
82 end
83
84 PROJECT.each do |file|
85 exc = ExcDsp.new(file)
86 begin
87 exc.write
88 exc.close
89 rescue
90 STDERR.puts $!.message
91 exc.discard
92 exit 3
93 end
94 end
95

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26