source: azure_iot_hub/trunk/asp3_dcre/cfg/GenFile.rb@ 389

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

ビルドが通るよう更新

  • 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# -*- coding: utf-8 -*-
2#
3# TOPPERS Configurator by Ruby
4#
5# Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
6# Graduate School of Information Science, Nagoya Univ., JAPAN
7# Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
8# Copyright (C) 2016 by APTJ Co., Ltd., JAPAN
9#
10# 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
11# ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
12# 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
13# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
14# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
15# スコード中に含まれていること.
16# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
17# 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
18# 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
19# の無保証規定を掲載すること.
20# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
21# 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
22# と.
23# (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
24# 作権表示,この利用条件および下記の無保証規定を掲載すること.
25# (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
26# 報告すること.
27# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
28# 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
29# また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
30# 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
31# 免責すること.
32#
33# 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
34# よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
35# に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
36# アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
37# の責任を負わない.
38#
39# $Id$
40#
41
42#
43# ファイル作成クラス
44#
45
46#
47# ファイルに書こうとした内容を変数に蓄積し,プログラムの終了時(output
48# メソッドが呼ばれた時)にファイルに出力する.既にファイルが存在し,差
49# 分がない場合は出力しない(タイムスタンプを更新しない).
50#
51class GenFile
52 @@fileDataHash = {}
53
54 def initialize(fileName)
55 @selfFileName = fileName
56 if !@@fileDataHash.has_key?(fileName)
57 @@fileDataHash[@selfFileName] = ""
58 end
59 end
60
61 # ファイルデータの末尾に文字列を追加する
62 def append(code = "")
63 @@fileDataHash[@selfFileName] << code
64 end
65
66 # ファイルデータに1行追加する
67 def add(code = "")
68 @@fileDataHash[@selfFileName] << code << "\n"
69 end
70
71 # ファイルデータに1行追加する(改行2回)
72 def add2(code = "")
73 add(code + "\n")
74 end
75
76 # コメントヘッダを追加する
77 def comment_header(comment)
78 add("/*")
79 comment.split("\n").each do |sLine|
80 add(" * " + sLine)
81 end
82 add2(" */")
83 end
84
85 # ファイルデータを表示する
86 def print()
87 puts(@@fileDataHash[@selfFileName])
88 end
89
90 # 全ファイルを出力する
91 def self.output()
92 @@fileDataHash.each do |fileName, fileData|
93 # 既にファイルが存在し,差分がない場合は出力しない
94 #(タイムスタンプを更新しない)
95 if File.exist?(fileName)
96 if fileData == File.read(fileName)
97 next
98 end
99 end
100 File.open(fileName, "w") do |file|
101 puts("[#{File.basename($0)}] Generated #{fileName}")
102 file.puts(fileData)
103 end
104 end
105 end
106end
Note: See TracBrowser for help on using the repository browser.