                               runscr4ctx

perl, ruby, python, lua その他のスクリプトを実行するための runscr.exe を
ConTeXt 用に少し特殊化したものです。汎用の runscr.exe との主な違いは
 (1) $SYSTEMROOT/fonts// を値とする環境変数 OSFONTDIR をセットする。
 (2) texmf.cnf から変数 TEXMFCACHE の値を読める場合は、その最初の値、つまり
     TEXMFCACHE = aaa;bbb;ccc
     のようになっていたら aaa
     を値とする環境変数 TEXMFCACHE をセットする。
     texmf.cnf から TEXMFCACHE が読めない場合は、環境変数 TEMP, TMP, TMPDIR
     をこの順に調べ、設定してある値を環境変数 TEXMFCACHE にセットする。
 (3) texmf.cnf から TEXMFCNF を読み、それを
     {aaa,bbb,ccc} の形になおしてから、これを値とする環境変数 TEXMFCNF
     を設定する。
 (4) texmf.cnf から TEXMF を読み、それを
     {aaa,bbb,ccc} の形になおしてから、これを値とする環境変数 TEXMF
     を設定する。
ということです。設定した環境変数は、プロセスの間だけ有効で、終了したら
捨てられます。
使用するには例えば foo.pl (perl), foo.rb (ruby), foo.py (python), foo.lua (lua)
あるいは foo, foo.scr (一般) なる名前のスクリプトを バイナリディレクトリに
置きます。あるいは$TEXMF/scripts/ 以下においてもよいです。
次に ln.exe と NTFS を使用しておれば
ln runscr4ctx.exe foo.exe
とし、そうでない場合は
copy runscr4ctx.exe foo.exe
とします。そうすると foo とするだけで スクリプトを実行することができます。
勿論 perl.exe, ruby.exe, python.exe, lua.exe などのスクリプト解釈プログラム
をインストールしておく必要があります。また、Kpathsearch
ライブラリを使用しているので、W32TeX をインストールしておくことも必要です。
(実際に必要なのは kpathsea356.dll だけです。)

script が
#!prog a b ...
...
のように始まっていると
prog a b ... script args
のように prog を実行します。従ってこの場合は、任意のスクリプト
を実行できます。また
#!/usr/local/bin/prog a b ...
...
あるいは
#!c:/usr/local/bin/prog a b ...
...
のように始まっていても
prog a b ... script args
のように実行します。つまりフルパス部分の /usr/local/bin/ や
c:/usr/local/bin/ は無視されます。従って prog には PATH が通っていないと
実行できません。また
#!/usr/bin/env perl a b ...
のようになっているときは env を無視し
perl a b ... script args
のように実行します。
第一行が上のように始まっていない場合は
(1)
foo or foo.pl のとき
perl foo args
perl foo.pl args
(2)
foo.rb のとき
ruby foo.rb args
(3)
foo.py のとき
python foo.py args
(4)
foo.lua のとき
lua foo.lua args
のように suffix からスクリプト実行プログラムを推定します。

foo.scr の場合は #! line が必須です。
------------------------
A. Kakuto <kakuto@fuk.kindai.ac.jp>
