source: asp3_tinet_ecnl_arm/trunk/asp3_dcre/utils/applyrename.rb@ 352

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

arm向けASP3版ECNLを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby;charset=UTF-8
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# 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
13# ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
14# 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
15# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
16# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
17# スコード中に含まれていること.
18# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
19# 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
20# 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
21# の無保証規定を掲載すること.
22# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
23# 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
24# と.
25# (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
26# 作権表示,この利用条件および下記の無保証規定を掲載すること.
27# (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
28# 報告すること.
29# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
30# 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
31# また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
32# 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
33# 免責すること.
34#
35# 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
36# よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
37# に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
38# アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
39# の責任を負わない.
40#
41# $Id$
42#
43
44require "fileutils"
45
46#
47# ファイルにリネームを適用する
48#
49def applyRename(inFileName, syms)
50 symsRegexp = syms.join("|")
51 outFileName = inFileName + ".new"
52
53 begin
54 inFile = File.open(inFileName)
55 outFile = File.open(outFileName, "w")
56 rescue Errno::ENOENT, Errno::EACCES => ex
57 abort(ex.message)
58 end
59
60 inFile.each do |line|
61 line.gsub!(/\b(_?)(#{symsRegexp})\b/, "\\1_kernel_\\2")
62 outFile.print line
63 end
64
65 inFile.close
66 outFile.close
67
68 if FileUtils.cmp(inFileName, outFileName)
69 # ファイルの内容が変化しなかった場合
70 FileUtils.remove(outFileName)
71 else
72 # ファイルの内容が変化した場合
73 FileUtils.move(inFileName, inFileName + ".bak")
74 FileUtils.move(outFileName, inFileName)
75 puts("Modified: #{inFileName}")
76 end
77end
78
79#
80# エラーチェック
81#
82if ARGV.length < 1
83 abort("Usage: ruby appyrename.rb <prefix> <filelists>")
84end
85
86#
87# 初期化
88#
89syms = []
90name = ARGV.shift
91
92#
93# シンボルリストを読み込む
94#
95defFileName = name + "_rename.def"
96
97begin
98 defFile = File.open(defFileName)
99rescue Errno::ENOENT, Errno::EACCES => ex
100 abort(ex.message)
101end
102
103defFile.each do |line|
104 line.chomp!
105 if /^#\s*(.*)$/ =~ line
106 # do nothing
107 elsif /^INCLUDE\s+(.*)$/ =~ line
108 # do nothing
109 elsif line != ""
110 syms.push(line)
111 end
112end
113
114#
115# ファイルにリネームを適用する
116#
117ARGV.each do |inFileName|
118 if inFileName != defFileName && File.readable?(inFileName)
119 applyRename(inFileName, syms)
120 end
121end
Note: See TracBrowser for help on using the repository browser.