source: EcnlProtoTool/trunk/asp3_dcre/utils/applyrename.rb@ 270

Last change on this file since 270 was 270, checked in by coas-nagasima, 7 years ago

mruby版ECNLプロトタイピング・ツールを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby
File size: 4.2 KB
Line 
1#!/usr/bin/env ruby
2# -*- coding: utf-8 -*-
3#
4# TOPPERS Software
5# Toyohashi Open Platform for Embedded Real-Time Systems
6#
7# Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
8# Toyohashi Univ. of Technology, JAPAN
9# Copyright (C) 2004-2016 by Embedded and Real-Time Systems Laboratory
10# Graduate School of Information Science, Nagoya Univ., JAPAN
11#
12# 上記著作権者
13は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
14# ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
15# 変・再é…
16å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
17# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
18# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
19# スコード中に含まれていること.
20# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
21# 用できる形で再é…
22å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
23å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
24# 者
25マニュアルなど)に,上記の著作権表示,この利用条件および下記
26# の無保証規定を掲載すること.
27# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
28# 用できない形で再é…
29å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
30# と.
31# (a) 再é…
32å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
33マニュアルなど)に,上記の著
34# 作権表示,この利用条件および下記の無保証規定を掲載すること.
35# (b) 再é…
36å¸ƒã®å½¢æ…
37‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
38# 報告すること.
39# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
40# 害からも,上記著作権者
41およびTOPPERSプロジェクトをå…
42è²¬ã™ã‚‹ã“と.
43# また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
44# 由に基づく請求からも,上記著作権者
45およびTOPPERSプロジェクトを
46# å…
47è²¬ã™ã‚‹ã“と.
48#
49# 本ソフトウェアは,無保証で提供されているものである.上記著作権者
50お
51# よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
52# に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
53# アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
54# の責任を負わない.
55#
56# $Id: applyrename.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
57#
58
59require "fileutils"
60
61#
62# ファイルにリネームを適用する
63#
64def applyRename(inFileName, syms)
65 symsRegexp = syms.join("|")
66 outFileName = inFileName + ".new"
67
68 begin
69 inFile = File.open(inFileName)
70 outFile = File.open(outFileName, "w")
71 rescue Errno::ENOENT, Errno::EACCES => ex
72 abort(ex.message)
73 end
74
75 inFile.each do |line|
76 line.gsub!(/\b(_?)(#{symsRegexp})\b/, "\\1_kernel_\\2")
77 outFile.print line
78 end
79
80 inFile.close
81 outFile.close
82
83 if FileUtils.cmp(inFileName, outFileName)
84 # ファイルの内
85容が変化しなかった場合
86 FileUtils.remove(outFileName)
87 else
88 # ファイルの内
89容が変化した場合
90 FileUtils.move(inFileName, inFileName + ".bak")
91 FileUtils.move(outFileName, inFileName)
92 puts("Modified: #{inFileName}")
93 end
94end
95
96#
97# エラーチェック
98#
99if ARGV.length < 1
100 abort("Usage: ruby appyrename.rb <prefix> <filelists>")
101end
102
103#
104# 初期化
105#
106syms = []
107name = ARGV.shift
108
109#
110# シンボルリストを読み込む
111#
112defFileName = name + "_rename.def"
113
114begin
115 defFile = File.open(defFileName)
116rescue Errno::ENOENT, Errno::EACCES => ex
117 abort(ex.message)
118end
119
120defFile.each do |line|
121 line.chomp!
122 if /^#\s*(.*)$/ =~ line
123 # do nothing
124 elsif /^INCLUDE\s+(.*)$/ =~ line
125 # do nothing
126 elsif line != ""
127 syms.push(line)
128 end
129end
130
131#
132# ファイルにリネームを適用する
133#
134ARGV.each do |inFileName|
135 if inFileName != defFileName && File.readable?(inFileName)
136 applyRename(inFileName, syms)
137 end
138end
Note: See TracBrowser for help on using the repository browser.