neri 0.9.6 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.ja.md +53 -72
- data/README.md +202 -61
- data/exe/neri +1 -2
- data/lib/neri/build.rb +285 -421
- data/lib/neri/runtime.rb +1 -0
- data/lib/neri/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57f66e92c785a8a350a76ae6ac0ca0415da25389a5850033b25ca5635ec3d091
|
4
|
+
data.tar.gz: '08b3a7608a8b5197597940787da7afa75a421bcc5b87503cb309f375e56f8b73'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fba1fb3e64325fc9469eafcb66816937207d0577aba9a647099b95ad16f98dd138dc14fe5c6294fbfc84425eebaf5e1a6bb7d615d8351334b914c55de0576c8
|
7
|
+
data.tar.gz: 944a9f3570ea0ce11d34194f775e0217932200a3ff420ee7d72996a6aa3b706c210c0bbd0bad333099aa18740ae9193c3d26ca5c4dfa9732abcf64b038b1b3c6
|
data/README.ja.md
CHANGED
@@ -1,27 +1,25 @@
|
|
1
1
|
# Neri
|
2
2
|
|
3
|
-
Neri は、Ruby スクリプトを Ruby
|
3
|
+
Neri は、Ruby スクリプトを Ruby 未インストール環境の Windows 向けに配布するためのパッケージングシステムです。
|
4
4
|
|
5
5
|
同種の gem としては [OCRA](https://github.com/larsch/ocra) がありますが、以下のような違いがあります。
|
6
6
|
|
7
7
|
- OCRA に比べての長所
|
8
8
|
- 展開しない分、起動が速い。
|
9
|
-
- 実行ファイルを複数作りたいとき、OCRA ではサイズの大きな実行ファイルを複数生成することになってしまうが、Neri
|
10
|
-
- OCRA には「日本語を含むユーザー名の環境では起動できない」という問題があるが、Neri にはない。
|
11
|
-
- ただし Ruby のバージョンによっては、日本語を含むパス上では起動できない。(この点は OCRA も同様。)
|
9
|
+
- 実行ファイルを複数作りたいとき、OCRA ではサイズの大きな実行ファイルを複数生成することになってしまうが、Neri ではシステムファイルを共有できるため全体のサイズが大きくならずに済む。
|
12
10
|
- OCRA に比べての短所
|
13
|
-
-
|
14
|
-
- gcc と windres(Ruby Installer 2 With Devkit を使用している場合、使用前に `ridk enable` を実行してパスを通す必要があるかもしれません。)
|
15
|
-
- [Bat To Exe Converter](http://www.f2ko.de/en/b2e.php) ver.3
|
11
|
+
- 基本的に、[Ruby Installer 2](https://rubyinstaller.org/) With Devkit で Ruby をインストールした環境でしか利用できない。(なお、使用前に `ridk enable` を実行してパスを通す必要があります。)
|
16
12
|
|
17
13
|
## インストール
|
18
14
|
|
19
15
|
$ gem install neri
|
20
16
|
|
21
|
-
|
17
|
+
bundler を用いた利用もできますが、その場合同梱するファイルが増えてしまうのでおすすめしません。
|
22
18
|
|
23
19
|
## 使い方
|
24
20
|
|
21
|
+
まず、`ridk enable` を実行して開発環境にパスを通す必要があります。
|
22
|
+
|
25
23
|
$ neri [options] script.rb (other_files...) -- script_arguments
|
26
24
|
|
27
25
|
上の例では、一度 "script.rb" を依存ファイルチェックのために実行し、
|
@@ -41,16 +39,18 @@ Neri は、Ruby スクリプトを Ruby 未インストール環境向けに配
|
|
41
39
|
<dd>バージョンを表示します。</dd>
|
42
40
|
<dt>--quiet</dt>
|
43
41
|
<dd>実行中に途中経過等を表示しなくなります。</dd>
|
44
|
-
<dt>--
|
45
|
-
<dd
|
42
|
+
<dt>--external-encoding</dt>
|
43
|
+
<dd>出力の文字コードを設定します。後述する --pause-text 等の設定で文字化けが生じる場合、sjis 等を設定してください。</dd>
|
46
44
|
</dl>
|
47
45
|
|
48
46
|
#### 依存ファイルの追加
|
49
47
|
|
50
48
|
Neri は実行時に必要と思われるファイルを自動的に依存ファイルとして出力先にコピーしますが、
|
51
|
-
|
49
|
+
その判定がうまくいかず実行に必要なファイルが足りない場合もあります。
|
52
50
|
そうした場合はこれらのオプションで依存ファイルを手動で追加する必要があります。
|
53
51
|
|
52
|
+
(もしくは、直接出力先に手動で必要なファイルをコピーするのも1つの方法です。)
|
53
|
+
|
54
54
|
<dl>
|
55
55
|
<dt>--dll <dll1>,<dll2>,...</dt>
|
56
56
|
<dd>bin フォルダ内の指定された dll ファイルを依存ファイルに追加します。</dd>
|
@@ -58,7 +58,7 @@ Neri は実行時に必要と思われるファイルを自動的に依存ファ
|
|
58
58
|
<dd>ロードパス($LOAD_PATH)内の指定されたファイルを依存ファイルに追加します。</dd>
|
59
59
|
<dt>--gem <gem1>,<gem2>,...</dt>
|
60
60
|
<dd>指定された gem のファイルを依存ファイルに追加します。
|
61
|
-
デフォルトでは、該当 gem の lib
|
61
|
+
デフォルトでは、該当 gem の lib フォルダ内のファイル一式を依存ファイルに追加します。(たとえば `--gem gemname:dir1|dir2` とすれば、lib フォルダ以外のファイルを追加できます。)
|
62
62
|
現状、gem 間の依存等はチェックしないので、必要な gem すべてを手動で追加する必要があります。</dd>
|
63
63
|
</dl>
|
64
64
|
|
@@ -83,11 +83,13 @@ Neri はデフォルトでは、enc フォルダ内の文字コードライブ
|
|
83
83
|
|
84
84
|
<dl>
|
85
85
|
<dt>--enable-gems</dt>
|
86
|
-
<
|
86
|
+
<dt>--disable-gems (デフォルト)</dt>
|
87
|
+
<dd>rubygems を使用するかどうかを設定します。--disable-gems の場合も、依存チェック時に使用した gem のファイルは vendor_ruby フォルダ内にコピーされるため、rubygems 無しでも実行できるようになります。</dd>
|
87
88
|
<dt>--enable-did-you-mean</dt>
|
88
|
-
<
|
89
|
-
<
|
90
|
-
<
|
89
|
+
<dt>--disable-did-you-mean (デフォルト)</dt>
|
90
|
+
<dd>did_you_mean を使用するかどうかを設定します。</dd>
|
91
|
+
<dt>--no-chdir</dt>
|
92
|
+
<dd>Neri で作成した実行ファイルは、デフォルトでは実行時にカレントフォルダを実行ファイルと同じフォルダに設定します。このオプションを使うとカレントフォルダを変更しなくなります。(このオプションを使うと、日本語フォルダ下などではうまく動かなくなる可能性があるので注意してください。)</dd>
|
91
93
|
<dt>--pause-last</dt>
|
92
94
|
<dt>--no-pause-last</dt>
|
93
95
|
<dd>実行の最後に、pause を入れるか否かを設定します。省略した場合、コンソールアプリ(後述)の場合 on に、ウィンドウアプリの場合 off になります。</dd>
|
@@ -108,29 +110,23 @@ Neri はデフォルトでは、enc フォルダ内の文字コードライブ
|
|
108
110
|
<dt>--encryption-key <key></dt>
|
109
111
|
<dd>データファイルの暗号化キーを設定します。省略した場合、暗号化は行われません。
|
110
112
|
暗号化は簡単なものなので、解読されては困るような重要なデータには用いないでください。</dd>
|
113
|
+
<dt>--virtual-directory <dirname></dt>
|
114
|
+
<dd>データファイルからファイルを読み出す際、Neri はまず実行時のカレントフォルダをもとにファイルを検索し、見つからない場合はこの virtual-directory をもとにファイルを検索します。省略した場合は自動的に適切な仮想パスを生成します。</dd>
|
111
115
|
</dl>
|
112
116
|
|
113
117
|
#### exe ファイルの作成
|
114
118
|
|
115
119
|
<dl>
|
116
|
-
<dt>--no-exe</dt>
|
120
|
+
<dt>--no-exe or --bat</dt>
|
117
121
|
<dd>exe ファイルは作成せず、bat ファイルを作成します。</dd>
|
118
|
-
<dt>--use-b2ec</dt>
|
119
|
-
<dd>exe ファイルの作成を、Bat To Exe Converter を用いて行うようにします。</dd>
|
120
|
-
<dt>--b2ec-path <bat_to_exe_converter_path></dt>
|
121
|
-
<dd>Bat To Exe Converter がパスの通ったところにない場合、このオプションで場所を指定してください。</dd>
|
122
122
|
<dt>--icon <iconfile></dt>
|
123
123
|
<dd>アイコンを設定します。</dd>
|
124
124
|
<dt>--windows or --invisible</dt>
|
125
125
|
<dt>--console or --visible</dt>
|
126
126
|
<dd>ウィンドウアプリにするかコンソールアプリにするかを設定します。
|
127
127
|
ウィンドウアプリの場合、いわゆる「DOS窓」が開きません。
|
128
|
-
省略した場合、実行スクリプトファイルの拡張子が ".rbw" の場合、あるいは DXRuby を使用する場合にはウィンドウアプリになります。
|
128
|
+
省略した場合、実行スクリプトファイルの拡張子が ".rbw" の場合、あるいは [DXRuby](http://dxruby.osdn.jp/) や [Gosu](https://www.libgosu.org/ruby.html), [LibUI](https://github.com/kojix2/libui) を使用する場合にはウィンドウアプリになります。
|
129
129
|
そうでない場合はコンソールアプリになります。</dd>
|
130
|
-
<dt>--x64</dt>
|
131
|
-
<dd>64bit の exe ファイルを作成します。省略した場合、ruby 自体の bit 数に合わせます。 ※ Bat To Exe Converter 使用時のみ有効</dd>
|
132
|
-
<dt>--uac-admin</dt>
|
133
|
-
<dd>管理者として実行する exe ファイルを作成します。 ※ Bat To Exe Converter 使用時のみ有効</dd>
|
134
130
|
<dt>--fileversion <version></dt>
|
135
131
|
<dt>--productversion <version></dt>
|
136
132
|
<dd>ファイルバージョン・製品バージョンを設定します。
|
@@ -148,56 +144,21 @@ Neri はデフォルトでは、enc フォルダ内の文字コードライブ
|
|
148
144
|
<dd>コメント等を設定します。</dd>
|
149
145
|
</dl>
|
150
146
|
|
151
|
-
|
152
|
-
|
153
|
-
[UPX](https://upx.github.io/) を使用することで、全体のファイルサイズを小さくすることができます。
|
154
|
-
|
155
|
-
<dl>
|
156
|
-
<dt>--use-upx</dt>
|
157
|
-
<dd>UPX を使用します。</dd>
|
158
|
-
<dt>--upx-path <upx path></dt>
|
159
|
-
<dd>UPX がパスの通ったところにない場合、このオプションで場所を指定してください。</dd>
|
160
|
-
<dt>--upx_targets '<glob>'</dt>
|
161
|
-
<dd>UPX を適用するファイルを指定します。デフォルトは 'bin/**/*.dll' です。</dd>
|
162
|
-
<dt>--upx-options <options></dt>
|
163
|
-
<dd>UPX に渡すオプションを設定します。</dd>
|
164
|
-
</dl>
|
165
|
-
|
166
|
-
#### 7-Zip
|
167
|
-
|
168
|
-
[7-Zip](http://7-zip.org/) を使用することで、出力ファイルをまとめて zip ファイルにすることができます。
|
147
|
+
### neri.config ファイルによる設定
|
169
148
|
|
170
|
-
|
171
|
-
<dt>--zipfile <filename></dt>
|
172
|
-
<dd>zip ファイルを作成します。</dd>
|
173
|
-
<dt>--7zip-path <7-zip path></dt>
|
174
|
-
<dd>7-Zip がパスの通ったところにない場合、このオプションで場所を指定してください。</dd>
|
175
|
-
</dl>
|
176
|
-
|
177
|
-
#### Inno Setup
|
178
|
-
|
179
|
-
[Inno Setup](http://www.jrsoftware.org/isinfo.php) を使用することで、インストーラーを作成することができます。※ あまりテストしていません。
|
180
|
-
|
181
|
-
<dl>
|
182
|
-
<dt>--innosetup <inno_script></dt>
|
183
|
-
<dd>.iss ファイルを指定します。</dd>
|
184
|
-
<dt>--iscc-path <iscc path></dt>
|
185
|
-
<dd>iscc がパスの通ったところにない場合、このオプションで場所を指定してください。</dd>
|
186
|
-
</dl>
|
149
|
+
HOME フォルダ、あるいはカレントフォルダに`neri.config`というファイルを用意しておくと、以上のオプションをいちいち入力しなくても、`neri.config`に書かれたオプション設定を使用します。
|
187
150
|
|
188
|
-
|
151
|
+
`neri.config`には上記のオプションを、下のように改行で区切って入力してください。
|
189
152
|
|
190
|
-
|
191
|
-
|
153
|
+
```
|
154
|
+
--icon myicon.ico
|
155
|
+
--encryption-key foo
|
156
|
+
--output-dir ../bar
|
157
|
+
```
|
192
158
|
|
193
|
-
|
194
|
-
<dt>--create-recipe <recipefile></dt>
|
195
|
-
<dd>レシピファイルを作成します。このオプションを指定した場合、実行ファイルの作成は行いません。</dd>
|
196
|
-
<dt>--recipe <recipefile></dt>
|
197
|
-
<dd>レシピファイルを適用して、実行ファイルを作成します。</dd>
|
198
|
-
</dl>
|
159
|
+
コマンドラインオプション←カレントフォルダ←ホームフォルダの順で優先されます。
|
199
160
|
|
200
|
-
##
|
161
|
+
## データファイルを活用したファイルの簡易隠蔽機能
|
201
162
|
|
202
163
|
たとえば以下のようにすることで、script.rb だけでなく、data フォルダ内のデータ一式をデータファイルに収めることができます。
|
203
164
|
|
@@ -225,11 +186,31 @@ Neri.files # -> Array
|
|
225
186
|
|
226
187
|
データファイル内にあるファイルの一覧を配列で返します。
|
227
188
|
|
228
|
-
###
|
189
|
+
### DXRuby 等との連携
|
229
190
|
|
230
191
|
DXRuby を使用する場合、DXRuby の Image.load, Image.load_tiles, Sound.new を上書きし、データファイル内に画像・音声ファイルがあればそちらから読み込むようになります。
|
231
192
|
これにより、スクリプトファイルを一切書き換えることなく、Neri を利用したファイルの簡易隠蔽機能が利用できます。
|
232
193
|
|
194
|
+
### その他
|
195
|
+
|
196
|
+
#### 実行ファイル作成時のみ、スクリプトを早期に終了させたい場合
|
197
|
+
|
198
|
+
Neri は依存ファイルチェックのためにスクリプトを一度実行するので、その終了を待つか途中で強制終了させる必要があります。しかし、実行ファイル作成時には `NeriBuild` というモジュールが存在するので、以下のように `NeriBuild` が存在する場合は早期に終了するようにすることができます。
|
199
|
+
|
200
|
+
```ruby
|
201
|
+
require "foobar"
|
202
|
+
# 必要なライブラリの読み込みがすべて終了
|
203
|
+
exit if defined? NeriBuild
|
204
|
+
```
|
205
|
+
|
206
|
+
#### 実行ファイルのパス
|
207
|
+
|
208
|
+
Neri で作られた実行ファイルを実行すると、環境変数 `NERI_EXECUTABLE` に実行ファイルのパスが保存されます。
|
209
|
+
|
210
|
+
```ruby
|
211
|
+
puts ENV["NERI_EXECUTABLE"]
|
212
|
+
```
|
213
|
+
|
233
214
|
## Contributing
|
234
215
|
|
235
216
|
Bug reports and pull requests are welcome on GitHub at https://github.com/nodai2hITC/neri
|
data/README.md
CHANGED
@@ -1,75 +1,216 @@
|
|
1
1
|
# Neri
|
2
2
|
|
3
|
-
[
|
3
|
+
[日本語説明](https://github.com/nodai2hITC/neri/blob/master/README.ja.md)
|
4
|
+
|
5
|
+
Neri is a packaging system for distributing Ruby scripts on Windows without Ruby installation.
|
6
|
+
|
7
|
+
There is a similar gem [OCRA](https://github.com/larsch/ocra), but Neri has the following differences.
|
8
|
+
|
9
|
+
- Advantages compared to OCRA
|
10
|
+
- Faster startup due to no expansion.
|
11
|
+
- When you want to create multiple executable files, OCRA generates multiple large executable files, but Neri can share system files, so the overall size is not large.
|
12
|
+
- Disadvantages compared to OCRA
|
13
|
+
- Basically, Neri can be used only in the environment where Ruby is installed by [Ruby Installer 2](https://rubyinstaller.org/) With Devkit. (Also, you need to run `ridk enable` to pass it before use.)
|
4
14
|
|
5
15
|
## Installation
|
6
16
|
|
7
17
|
$ gem install neri
|
8
18
|
|
9
|
-
|
19
|
+
It is also possible to use Neri with bundler, but it is not recommended because it increases the number of files to be included.
|
20
|
+
|
21
|
+
## How to use
|
22
|
+
|
23
|
+
First, you need to run `ridk enable` to set pass to the development environment.
|
10
24
|
|
11
25
|
$ neri [options] script.rb (other_files...) -- script_arguments
|
12
26
|
|
27
|
+
In the example above, Neri run "script.rb" once to check for dependency files, and then copy the files you need as dependency files to the output folder.
|
28
|
+
And then create the executable file.
|
29
|
+
|
30
|
+
If you copy the entire output folder, you can run the script even in an environment without Ruby.
|
31
|
+
|
32
|
+
### options:
|
33
|
+
|
34
|
+
#### Basic options
|
35
|
+
|
36
|
+
<dl>
|
37
|
+
<dt>--help or -h</dt>
|
38
|
+
<dd>Show help.</dd>
|
39
|
+
<dt>--version or -v</dt>
|
40
|
+
<dd>Show version of Neri.</dd>
|
41
|
+
<dt>--quiet</dt>
|
42
|
+
<dd>It will no longer display the progress during execution.</dd>
|
43
|
+
<dt>--external-encoding</dt>
|
44
|
+
<dd>Set the character encoding for the output. If you encounter garbled characters when using settings such as --pause-text (see below), please make this setting.</dd>
|
45
|
+
</dl>
|
46
|
+
|
47
|
+
#### Add dependent files
|
48
|
+
|
49
|
+
Neri will automatically copy the files that it thinks are necessary for execution to the output folder as dependent files.
|
50
|
+
However, there may be cases where that determination does not work and you do not have enough files for execution.
|
51
|
+
In such cases, you need to add the dependency files manually with these options.
|
52
|
+
|
53
|
+
(or copy the necessary files directly to the output destination manually.)
|
54
|
+
|
55
|
+
<dl>
|
56
|
+
<dt>--dll <dll1>,<dll2>,...</dt>
|
57
|
+
<dd>Add the specified dll file in the bin folder to the dependency files.</dd>
|
58
|
+
<dt>--lib <lib1>,<lib2>,...</dt>
|
59
|
+
<dd>Add the specified file in $LOAD_PATH to the dependency files.</dd>
|
60
|
+
<dt>--gem <gem1>,<gem2>,...</dt>
|
61
|
+
<dd>Adds the files of the specified gem to the dependency files.
|
62
|
+
By default, it will add the set of files in the lib folder of the gem to the dependency files. (You can use `--gem gemname:dir1|dir2` to add files other than the lib folder.)
|
63
|
+
Currently, the dependencies between gems are not checked, so you need to add all necessary gems manually.</dd>
|
64
|
+
</dl>
|
65
|
+
|
66
|
+
#### Encoding
|
67
|
+
|
68
|
+
By default, Neri adds all encoding files in the enc folder to the dependency files, but this increases the overall file size.
|
69
|
+
|
70
|
+
By specifying the encoding files to be copied with these options, you can minimize the amount of data.
|
71
|
+
|
72
|
+
<dl>
|
73
|
+
<dt>--no-enc</dt>
|
74
|
+
<dd>Do not add Encoding files to the dependency files except for the ones you actually used.</dd>
|
75
|
+
<dt>--encoding <enc1>,<enc2>,...</dt>
|
76
|
+
<dd>Manually specify the encoding file to be added.</dd>
|
77
|
+
</dl>
|
78
|
+
|
79
|
+
↓ Example: Add only "windows_31j.so" and "japanese_sjis.so" to the dependency files.
|
80
|
+
|
81
|
+
$ neri --encoding windows_31j.so,japanese_sjis.so script.rb
|
82
|
+
|
83
|
+
#### Setting
|
84
|
+
|
85
|
+
<dl>
|
86
|
+
<dt>--enable-gems (default)</dt>
|
87
|
+
<dt>--disable-gems</dt>
|
88
|
+
<dd>Use rubygems. If you use --disable-gems, the necessary gem files will be copied to the vendor_ruby folder, so that you can run without rubygems.</dd>
|
89
|
+
<dt>--enable-did-you-mean</dt>
|
90
|
+
<dt>--disable-did-you-mean (default)</dt>
|
91
|
+
<dd>use did_you_mean</dd>
|
92
|
+
<dt>--no-chdir</dt>
|
93
|
+
<dd>By default, executables created by Neri will set the current folder to the same folder as the executable at runtime. With this option, the current folder will not be changed. (Please note that this option may not work well under Non-Ascii name folders.)</dd>
|
94
|
+
<dt>--pause-last</dt>
|
95
|
+
<dt>--no-pause-last</dt>
|
96
|
+
<dd>Set whether or not to include pause at the end of the execution. If omitted, it will be set to "on" for console applications (see below) and "off" for window applications.</dd>
|
97
|
+
<dt>--pause-text <text></dt>
|
98
|
+
<dd>Sets the display contents when pause is applied.</dd>
|
99
|
+
</dl>
|
100
|
+
|
101
|
+
#### Output
|
102
|
+
|
103
|
+
<dl>
|
104
|
+
<dt>--output-dir <dirname></dt>
|
105
|
+
<dd>Specifies the output folder name. If omitted, it will be the current folder (. /).</dd>
|
106
|
+
<dt>--system-dir <dirname></dt>
|
107
|
+
<dd>Specify the name of the system folder where ruby and other files will be copied. The default is "system".</dd>
|
108
|
+
<dt>--datafile <filename></dt>
|
109
|
+
<dd>Specify the data file name.If omitted, the name of the data file will be the file name of the executed script file with the extension changed to ".dat".
|
110
|
+
If you omit this option and there is no other file to put into the data file, the data file will not be created and the executed script file will be copied directly into the system folder.</dd>
|
111
|
+
<dt>--encryption-key <key></dt>
|
112
|
+
<dd>Set the encryption key for the data file. If omitted, no encryption will be performed.
|
113
|
+
Since encryption is simple, it cannot be used for important data that must not be decrypted.</dd>
|
114
|
+
<dt>--virtual-directory <dirname></dt>
|
115
|
+
<dd>When reading a file from a data file, Neri will first search for the file based on the current folder at runtime, and if not found, it will search for the file based on this virtual-directory.
|
116
|
+
If omitted, Neri will automatically generate the appropriate virtual path.</dd>
|
117
|
+
</dl>
|
118
|
+
|
119
|
+
#### Creating an executable file
|
120
|
+
|
121
|
+
<dl>
|
122
|
+
<dt>--no-exe or --bat</dt>
|
123
|
+
<dd>Do not create an exe file, but create a bat file.</dd>
|
124
|
+
<dt>--icon <iconfile></dt>
|
125
|
+
<dd>Set the icon.</dd>
|
126
|
+
<dt>--windows or --invisible</dt>
|
127
|
+
<dt>--console or --visible</dt>
|
128
|
+
<dd>Set whether you want to use a windowed app or a console app.
|
129
|
+
If it is a windowed app, the command prompt will not open.
|
130
|
+
If omitted, it will be a windowed app if the executed script file extension is ".rbw", or if [DXRuby](http://dxruby.osdn.jp/), [Gosu](https://www.libgosu.org/ruby.html), or [LibUI](https://github.com/kojix2/libui) is used.
|
131
|
+
Otherwise, it will be a console app.</dd>
|
132
|
+
<dt>--fileversion <version></dt>
|
133
|
+
<dt>--productversion <version></dt>
|
134
|
+
<dd>Set the file version and product version.
|
135
|
+
Set <version> to four numbers separated by commas, such as 1,2,3,4.</dd>
|
136
|
+
<dt>--productname <string></dt>
|
137
|
+
<dt>--internalname <string></dt>
|
138
|
+
<dt>--description <string></dt>
|
139
|
+
<dt>--company <string></dt>
|
140
|
+
<dt>--trademarks <string></dt>
|
141
|
+
<dt>--copyright <string></dt>
|
142
|
+
<dd>Set the product name, internal name, file description, company name, trademarks, and copyrights.</dd>
|
143
|
+
<dt>--privatebuild <string></dt>
|
144
|
+
<dt>--specialbuild <string></dt>
|
145
|
+
<dt>--comments <string></dt>
|
146
|
+
<dd>Set comments, etc.</dd>
|
147
|
+
</dl>
|
148
|
+
|
149
|
+
### Configuration by neri.config file
|
150
|
+
|
151
|
+
If you create a file named `neri.config` in your HOME folder or the current folder, Neri will use the option settings written in `neri.config` without you having to enter each of the above options.
|
152
|
+
|
153
|
+
Enter the above options in `neri.config`, separated by a new line as shown below.
|
154
|
+
|
155
|
+
```
|
156
|
+
--icon myicon.ico
|
157
|
+
--encryption-key foo
|
158
|
+
--output-dir ../bar
|
159
|
+
```
|
160
|
+
|
161
|
+
Command line options ← Current folder ← Home folder takes precedence in this order.
|
162
|
+
|
163
|
+
## Simple file hiding function using the data file
|
164
|
+
|
165
|
+
For example, you can put not only script.rb but also all the files in the data folder into a data file by doing the following.
|
166
|
+
|
167
|
+
$ neri script.rb data/*
|
168
|
+
|
169
|
+
Script files in the data file can be loaded with `require` or `load`.
|
170
|
+
|
171
|
+
Also, by adding `require 'neri'` in the original script file, you can access the files in the data file with the following methods.
|
172
|
+
|
173
|
+
```ruby
|
174
|
+
Neri.file_exist?(filename) # -> bool
|
13
175
|
```
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
--description <string>
|
53
|
-
--company <string>
|
54
|
-
--trademarks <string>
|
55
|
-
--copyright <string>
|
56
|
-
--privatebuild <string>
|
57
|
-
--specialbuild <string>
|
58
|
-
--comments <string>
|
59
|
-
|
60
|
-
--use-upx
|
61
|
-
--upx-path <upx path>
|
62
|
-
--upx_targets '<glob>'
|
63
|
-
--upx-options <options>
|
64
|
-
|
65
|
-
--zipfile <filename>
|
66
|
-
--7zip-path <7-zip path>
|
67
|
-
|
68
|
-
--innosetup <inno_script>
|
69
|
-
--iscc-path <iscc path>
|
70
|
-
|
71
|
-
--create-recipe <recipefile>
|
72
|
-
--recipe <recipefile>
|
176
|
+
|
177
|
+
Returns true if the file exists in the data file or actually exists, false if it does not.
|
178
|
+
|
179
|
+
```ruby
|
180
|
+
Neri.file_read(filename, encoding = Encoding::BINARY) # -> String
|
181
|
+
```
|
182
|
+
|
183
|
+
Reads the entire file that exists in the data file or in as a real file file (the size to be read cannot be specified). If the file exists both in the data file and as a real file, the one in the data file takes precedence.
|
184
|
+
|
185
|
+
```ruby
|
186
|
+
Neri.files # -> Array
|
187
|
+
```
|
188
|
+
|
189
|
+
Returns a list of files in a data file as Array.
|
190
|
+
|
191
|
+
### Cooperation with DXRuby, etc.
|
192
|
+
|
193
|
+
When using DXRuby, Neri will overwrite DXRuby's Image.load, Image.load_tiles, and Sound.new, and load from the image and sound files in the data file if there are any.
|
194
|
+
This allows you to use Neri for simple file hiding without having to rewrite any script files.
|
195
|
+
|
196
|
+
### Other
|
197
|
+
|
198
|
+
#### If you want to exit the script early only when the executable is created
|
199
|
+
|
200
|
+
Neri executes the script once to check for dependency files, so you need to wait for it to finish or force it to quit in the middle. However, since the module `NeriBuild` is present when the executable is created, you can make it exit early if `NeriBuild` is present, as follows.
|
201
|
+
|
202
|
+
```ruby
|
203
|
+
require "foobar"
|
204
|
+
# All necessary libraries have been loaded.
|
205
|
+
exit if defined? NeriBuild
|
206
|
+
```
|
207
|
+
|
208
|
+
#### Path of the executable file
|
209
|
+
|
210
|
+
When you run an executable created by Neri, the path of the executable will be saved in the environment variable `NERI_EXECUTABLE`.
|
211
|
+
|
212
|
+
```ruby
|
213
|
+
puts ENV["NERI_EXECUTABLE"]
|
73
214
|
```
|
74
215
|
|
75
216
|
## Contributing
|