| Operating System | 名称 | 対応改訂 | アーカイブ名 |
|---|---|---|---|
| Microsoft Windows 9x/NT | toSync 3.02.0.0108 | 第2改訂版 | tsync108.lzh(25.8KB/LHA(lh5)) |
Copyright(C)Static 1998-2004, All Rights Reserved.
この文書はeXtensible Synchronizing Script (XSync)、拡張可能な同期処理言語の詳細について述べたものです。 実装系の記述が間々見受けられますが、同一人物が規格と実装をやっているのでその点はご了承ください。 また、XSyncに関するご感想やご意見をお待ちしております。
処理手順定義文書は大角括弧('['']')で囲まれたひとつの語句と任意の文字列を1つのセクションとして、
以下の3つのセクションから構成されます。
それぞれのセクションは改行文字によって結合され、 処理手順定義文書はWindowsで一般的に扱われている初期化ファイル(.ini)であり、 セクションは基本的にその形式にのっとって記述されます。 ここで処理手順定義文書のイメージを示しておきます。
[parameters]
...
[instructions]
...
[command]
...
また、1つの一般的なセクションは以下のように定義されます。
このセクションでは[instructions]セクションの内容を置換する置換シンボルを記述します。 1つのシンボルはシンボルの名前とシンボルの内容を等号('=')で結合したものであり、 複数のシンボルはそれぞれ改行文字で結合されるので、改行文字を含むことはできません。 また、シンボルの数に制限はありませんが、 それによって処理手順定義文書のサイズが32KBを超過することはできません。 ここで置換シンボルのイメージを示しておきます。
また、1つのシンボルは以下のように定義されます。
[instructions]セクションにおいて置換シンボルを参照する際には
参照辞('$('')')で囲います。
このセクションではtoSyncが行うファイル間の属性の比較、 それに基づくコマンドの発行などの処理シンボルを記述します。 このセクションのすべての部分で置換シンボルを参照することができます。 先に、1つの処理シンボルの定義を示します。
各句は空白文字により結合されます。
各処理シンボル構成句の機能・書式は以下の通りです。
':')とバックスラッシュ('\')を結合したもので表現され、
各ロケーションステップはバックスラッシュ('\')で結合されます。
ただし、現バージョンではロケーションステップの定義の利用において以下の制限があります。
| 部分 | 制限事項 |
|---|---|
| 基準点 | 利用可能な基準点はdescendant基準点とdescendant-or-self基準点とchild基準点です。 |
| ノードテスト | child基準点では'*'とQNameのみ、
descendant基準点とdescendant-or-self基準点では"node()"のみが使用できます。 |
| 述語 | 利用できません。(通常属性として固定されています) |
| 省略文法 | "descendant-or-self::node()"のみが省略でき、"child::"は省略しなければなりません。 |
| フォルダセレクタ | 選択されるフォルダ |
|---|---|
| 'c:\winnt\*' | c:\winnt下のすべてのフォルダを選択します。 |
| 'c:\winnt\\*' | c:\winntと'c:\winnt\*'によって選択されるフォルダに加え すべてのサブフォルダも選択します。 |
| 'c:\winnt\descendant-or-self::node()\*' | 'c:\winnt\\*'によって選択されるフォルダを選択します。 |
| 'c:\winnt\descendant::node()\*' | 'c:\winnt\*'によって選択されるフォルダに加え すべてのサブフォルダも選択します。 |
| 'c:\winnt\\win9x' | c:\winnt下のすべての'win9x'フォルダに加え すべてのサブ'win9x'フォルダも選択します。 |
| フォルダセレクタ | ファイルセレクタ | 選択されるファイル |
|---|---|---|
| 'c:\winnt\\*' | *.html | c:\winnt以下にあるすべてのHTMLファイル |
| 'c:\winnt\\*' | system\*.html | c:\winnt以下にあるsystemフォルダ内のすべてのHTMLファイル |
| 'c:\winnt\\*' | \\*.svg | c:\winnt以下にあるすべてのSVGファイル |
フォルダセレクタとファイルセレクタを通したファイルの選択機構は以下の通りです。
結局のところ、フォルダセレクタとファイルセレクタはある1つのファイルを選択するために記述されるということになりますが、 この2つの句は以下に示す通りに、組み込み置換シンボルを決定するという点で重要な記述となっています。 つまり、toSyncはXPathとmakeとを組み込み置換シンボルという形でつないでいる、ということになります。
もともと組み込み置換シンボルはmakeの機能であり、特に目新しい機能ではありません。 ただ、makeにおける組み込み置換シンボルはサフィックスや依存関係推論機構によって提供されるものであり、 toSyncのセレクタによって提供される組み込み置換シンボルはそれとは異なっています。 現バージョンで利用できる組み込み置換シンボルは以下の通りです。
| シンボル名 | シンボルの参照内容 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @ |
セレクタによって選択されたファイルですが、
ファイルセレクタが表現するそのファイルまでの相対パスも含みます。
ただし、先頭にバックスラッシュ('\')がくることはありません。
また、そのセレクタに関連付けられているターゲット句とソース句とコマンド句でのみ参照できます。
たとえば、以下のようになります。
|
|||||||||||||
| 派生 | ||||||||||||||
| @. | @に含まれるファイルの拡張子を除いた部分を指します。末尾にドット('.')が付きます。 |
|||||||||||||
| @/ | @に含まれるパスの部分を指します。末尾にバックスラッシュ('\')が付きます。 |
|||||||||||||
| /@. | @に含まれるファイル名から拡張子を除いた部分を指します。
先頭にバックスラッシュ('\')が付き、末尾にドット('.')が付きます。 |
|||||||||||||
| /@ | @に含まれるファイル名を指します。先頭にバックスラッシュ('\')が付きます。 |
|||||||||||||
| .@ | @に含まれるファイルの拡張子を指します。先頭にドット('.')が付きます。 |
|||||||||||||
| yyyy | 現在の年(西暦)を指します。年は4桁で表現されます。 | |||||||||||||
| yy | 現在の年(西暦)を指します。年は2桁で表現されます。 | |||||||||||||
| mm | 現在の月を指します。月は2桁で表現されます。 | |||||||||||||
| dd | 現在の日を指します。日は2桁で表現されます。 | |||||||||||||
組み込み置換シンボルを参照する際には通常の置換シンボルと同様ですが、
先頭に参照辞('$')を付けます。
また、通常の置換シンボルは組み込み置換シンボルを含んでいてもかまいません。
'or')によって結合され、
ソースに対するターゲットの関係が条件を1つでも満たすと妥当でないと評価しコマンドを発行します。
' ')によって結合します。
| 語句 | 意味 |
|---|---|
| old | ターゲットの更新日時がソースよりも古い状態です。 |
| none | ターゲットが存在しません。 |
| 0kb | ターゲットは存在しますが、ファイルサイズが0KBです。 |
| invalid | 'old'と'0kb'を指定したことを意味します。 |
' ')によって結合します。
ただし、現バージョンでは最初の{パス}しか評価対象になりません。
' ')によって結合します。
' ')を含むことはできません。
また、そのパスのファイル名が処理中に表示される出力メッセージに使用されます。
このセクションでは処理手順定義文書を解析し、 処理を開始する前に発行しておきたいコマンドなどを記述します。 [parameters]セクションと形式は同じですが、 使用可能なシンボル名は'begin'と'end'のみとなっています。 それぞれのシンボル名が表しているシンボルの機能は以下の通りです。
'begin''end'このセクションでは置換シンボルを参照することはできません。