Tclish

Tclishは、UNIXシステム向けのカスタマイズ可能な汎用インストーラです。
Tclishは、100% Pure Tclで記述されていますが、BLTのWidgetを使っているので、
実行にはBLTが必要です。
ファイルを1つにラッピングするには、別途Freewrapを使う必要があります。

Tclishはあくまでもインストーラを作成するためのフレームワークを提供するだけなので、
実際にファイルをコピーする際の細かな指示はTclプロシジャを記述して行わなければなりません。
インストールするファイルは、予めTar形式で圧縮しておいて、それを解凍します。

ファイル構成

インストールに必要なファイル構成は以下の通りです。
CD-ROMに焼くイメージです。

トップにinstall.tclファイルを置きます。
imgフォルダ内に、コンフィグファイルcustom.cfgとGIFファイルを置きます。
packagesフォルダ内にパッケージファイル00all.pkgとTarファイルを置きます。

コンフィグファイル

コンフィグファイルは、インストーラのタイトルや画面のイメージ等を設定します。
custom.cfgファイルの例を以下に示します。

title "Application Installer"
creator "Satoshi Imai"
copyright "Copyright \251 2001 Satoshi Imai"
credits "More Tcl/Tk"
buttonBackground black
buttons "-foreground black \
         -tile [create_photo goldbg.gif] \
	 -activeforeground white \
	 -activetile [create_photo redbg.gif]"
icon [create_photo tclish-logo.gif]

カスタマイズした起動画面です。

パッケージファイル

パッケージファイルは、パッケージの説明や構成等を設定します。
パッケージファイルは、1つのファイルにまとめることもできますが、
複数のファイルに分割して置くこともできます。
00all.pkgファイルの例を以下に示します。

# 最終的にこのプロシジャが呼び出されてTarファイルを解凍する
proc install_tarfile {pkg} {
    global parameter
    untar $parameter(installdir) $parameter($pkg-tarfile)
}

package *intro {
    category {概要}
    title {説明}
    description {ここに全体の説明を記述します。}
    icon [create_photo tclish-logo.gif]
}

package Application {
    category {本体}
    title Application
    version 1.0
    parameters {
      directory {インストール・フォルダ} \
                {インストールするフォルダを選んでください。} \
		installdir /
      form {} {} {{Application-tarfile}} {-force {appli-1.0-*.tar.gz}}
    }
    installcmd install_tarfile
    description {ここにApplicationの説明を記述します。}
    files appli-1.0-*.tar.gz
    icon [create_photo tclish-logo.gif]
}

package Img {
    category {拡張}
    title Img
    version 1.2.4
    parameters {
      directory {インストール・フォルダ} \
                {インストールするフォルダを選んでください。} \
		installdir /
      form {} {} {{Img-tarfile}} {-force {img-1.2.4-*.tar.gz}}
    }
    installcmd install_tarfile
    description {ここにImgの説明を記述します。}
    files img-1.2.4-*.tar.gz
    icon [create_photo tclish-logo.gif]
}

package BLT {
    category {拡張}
    title BLT
    version 2.4u
    parameters {
      directory {インストール・フォルダ} \
                {インストールするフォルダを選んでください。} \
		installdir /
      form {} {} {{BLT-tarfile}} {-force {blt-2.4u-*.tar.gz}}
    }
    installcmd install_tarfile
    description {ここにBLTの説明を記述します。}
    files blt-2.4u-*.tar.gz
    icon [create_photo tclish-logo.gif]
}

インストーラの設定は、これだけです。
install.tclを起動すると以下の画面が表示されます。

Browseボタンを押した時は、パッケージの説明が表示されます。

Installボタンを押した時は、オプション選択が表示されます。
オプションのメニューはカスタマイズが可能です。

Full Installを選択し、Nextボタンを押すと、フォルダ選択が表示されます。

Custom Installを選択し、Nextボタンを押すと、カスタム選択が表示されます。
ここでインストールしたいパッケージを個別に選択できます。

フォルダ選択で、Nextボタンを押すとインストールの準備が完了します。
Installボタンを押すとインストールが始まります。

Aboutボタンを押した時は、Aboutダイアログが表示されます。

更に、What is Tclish? ボタンを押すとTclishの説明が表示されます。

最後に

Windowsでも使えそうなTclishですが、現状はフォルダ選択でドライブ名一覧が表示されないので、
無理であることがわかった。
また、ボタンなどの文字列を日本語にカスタマイズするには、install.tclを直接直すことになる。
今後のバージョンアップで改善を期待したいところである。


Tclish