de[v|b]log

ShellScript, Coffee, iOS/OSX Dev
Origin: Himajinworks.
About.

まだ雑にざっくり読んでいる。
以下に書くのは呼んでいて何だこれと思ったしたものだったりメモだったり。

ShellScriptの記法

Util/preconfig 内でのコード。
このコードは configure ファイルを用意するために利用される。(後述)

echo >&2 "string"

この記法が気になってしょうがなかった。 echo "string" >&2 とどう違うのだろう。

Util/preconfig

前述の通り、 configure ファイルを用意するために利用される。
内部的に何をしているのかというと、

  1. プロジェクトルートディレクトリ下から .preconfig ファイル(ShellScript)を探す
  2. 実行する
    • 実行時には検索で引っかかった .preconfig ファイル各々に対して、 cd . && ./.preconfig となるようなコマンド列を作成し実行する
    • 読んだ時点(5.3.1リリースあたり)では、内部的に autoconf , autoheader の実行と、 stamp-h.in の初期化(?)が行われる
    • 詳細は .preconfig ファイル参照

Test/ztst.zsh

テスト用ドライバスクリプト。
呼び出しとしては、

  1. トップレベルの Makefile
  2. Test ディレクトリ内の Makefile
    • ここでテスト対象ファイルのリストが生成される
  3. Test/runtests.zsh
    • このスクリプトでテストの進捗状況(成功・失敗・スキップ数)を管理している
  4. Test/ztst.zsh
    • 実際にテストケースを実行するドライバ

となる。

よって手で直接叩いて試したければ

/path/to/zsh +Z -f ztst.zsh target.ztst

として実行できる。
ここでzshの起動時に渡している +Z オプションは、ZLEモジュールが $module_path がテスト一式(?)を向く前にロードすることを避けるために使われるらしい。詳しくは調べられていない。(どこを調べれば良いのだろう。)
このことについては ChangeLog-3.12001-02-07 の項目を参考にした。