CodeZine(コードジン)

特集ページ一覧

NAntでVisual Source Safeの操作を自動化する

ファイルのチェックアウト・編集・チェックインの自動化

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/12/04 00:00
目次

付録:本稿で使用したタスク・ファンクションリファレンス

mkdirタスク

 mkdirタスクは、ディレクトリを作成します。作成するディレクトリの親ディレクトリが存在しない場合は、その親ディレクトリも作成します。

mkdirタスクの属性
属性名説明必須
dirdirectory作成するディレクトリ名

deleteタスク

 deleteタスクはファイル、ネスト要素<filesest>~</filesest>で指定されたファイル群、またはディレクトリを削除します。

 file属性もしくはdir属性が設定されると、ネスト要素<filesest>~</filesest>は無効になります。指定されたファイルかディレクトリが存在していなくても、特に警告は出力されません。

 読み取り属性の設定されたファイルやディレクトリは削除できません。 <attrib>タスクを使用して、読み取り属性を取り除く必要があります。
deleteタスクの属性
属性名説明必須
filefile削除するファイル名
dirdirectory削除するディレクトリ名×
includeemptydirsbool<fileset>にあるディレクトリについて、空のディレクトリも含めすべて削除するかどうかを指定。デフォルト値はtrue×

ネスト要素<filesest>~</filesest>について

 <filesest>~</filesest>タグ内で指定されたすべてのファイルが削除されます。

ネスト要素filesestの使用例
<delete>
  <fileset>
    <include name="C:\Folder\AAA.exe" />
    <include name="C:\Folder\BBB.pdb" />
  </fileset>
</delete>

execタスク

 execタスクは、任意のアプリケーションをNAnt内で実行するタスクです。

execタスクの属性
属性名説明必須
programstring実行したいアプリケーションやコマンドを指定。ただし、起動時の引数はこの属性に含めないこと
appendbool出力されるファイルが既に存在する場合、追記するように指定。デフォルト値はfalse×
basedirdirectoryアプリケーションの実行ファイルがあるディレクトリ×
commandlinestringコマンドライン引数×
outputfile標準出力のリダイレクト先となるファイル名×
resultpropertystring実行したアプリケーションやコマンドのリターンコードを格納するプロパティ名を指定。この動作を有効にするためには、failonerror属性の値が「false」でなくてはならない×
workingdirdirectoryコマンドを実行するディレクトリ×
timeoutint実行中のアプリケーションがタイムアウトするまでの時間(単位:ミリ秒)を指定。デフォルトはタイムアウトなし×
ネスト要素environmentの使用例
<exec program="C:\Folder\ss.exe" >
  <environment>
    <variable name="ssdir" value="C:\SSDIR"/>
  </environment>
</exec>

ネスト要素<arg>~</arg>について

 コマンドライン引数を設定します。

ネスト要素argの属性
属性名説明必須
dirdirectoryコマンドライン引数のディレクトリを指定(dir属性の値は、自動的に絶対パスに置換)×
filefileファイルのパスを指定(file属性の値は、自動的に絶対パスに置換)×
path<path>~</path>要素単一のパスを指定(パスの区切り文字などの実行環境に依存する文字は、自動的に置換)×
linestringコマンドライン引数の空白で区切られたリストを指定×
valuestring単一のコマンドライン引数を指定(空白も指定可)×
ネスト要素argの使用例
<exec program="ping">
  <arg value="nant.abcdef.net" />
</exec>

foreachタスク

 foreachタスクは、あるデータ群を対象に、繰り返し処理を行います。

 ディレクトリ内のファイル、ファイル内の行などの単位で繰り返しが可能です。最後の要素まで到達すると、繰り返し処理から復帰します。

foreachタスクの属性
属性名説明必須
itemLoopItem繰り返しアイテム。File、Folder、Line、Stringの4つが指定可能
propertystring繰り返しアイテムに使用されるNAntプロパティ名
delimstring区切りに使用される文字×
instring繰り返しの対象となるデータ群×
trimLoopTrim余分な空白に対するトリミングの種類。設定可能な値は、表:trim属性で指定できる値(LoopTrim型)を参照。デフォルト値はNone×
trim属性で指定できる値(LoopTrim型)
説明
Both繰り返しアイテムの前後にある空白を削除
Start繰り返しアイテムの文字列の前にある空白を削除
End繰り返しアイテムの文字列の後にある空白を削除
Noneどの空白も削除しない

loadfileタスク

 loadfileタスクは、指定されたテキストファイルの内容を読み込んで、プロパティに格納します。

loadfileタスクの属性
属性名説明必須
filefile読み込みするファイル名
propertystring読みこんだ内容を格納するプロパティ名
encodingEncoding読み込むファイルのエンコーディングを指定。エンコーディングが指定されていない場合は、デフォルト値として現在のロケールが設定される×

vsscheckoutタスク(NAntContrib)

 vsscheckoutタスクは、VSS DBに存在するファイルに対して、チェックアウトを実行します。

vsscheckoutタスクの属性
属性名説明必須
localpathdirectoryチェックアウトするファイルのローカルのパス
filetimestampFileTimestampローカルファイルのタイムスタンプ設定の種類。表:filetimestamp属性で設定できる値を参照。デフォルト値はCurrent×
filetimestamp属性で設定できる値(FileTimestamp型)
説明
Currentローカルファイルのタイムスタンプに、現在の時刻を設定
Modifiedローカルファイルのタイムスタンプに、ファイル変更時の時刻を設定
Updatedローカルファイルのタイムスタンプに、チェックイン時の時刻を設定

vsscheckinタスク(NAntContrib)

 vsscheckinタスクは、VSS DBに存在するファイルに対して、チェックインを実行します。

vsscheckinタスクの属性
属性名説明必須
localpathdirectoryチェックインするファイルのローカルのパス
commentstringチェックインしたバージョンに対するコメントを指定×

共通属性

vsscheckoutタスク/vsscheckinタスクに共通の属性

各タスクに共通の属性
属性名説明必須
recursivebool指定したプロジェクト以下を再帰的にチェックアウト/チェックイン取消しするかどうか。デフォルト値はtrue×
writableboolチェックアウト/チェックイン後のローカルコピーのファイルを書きこみ可能にするかどうか。 デフォルト値はtrue×
dbpathfile「srcsafe.ini」の存在するディレクトリのパス
pathstringチェックアウトするプロジェクトおよびファイルのパス
usernamestringVSS DBにログインするためのユーザー名。ユーザー名を指定せず、VSSアドミニストレータの「ネットワーク ログオンユーザー名を基に自動的にユーザーをログオン」設定にチェックが入っている場合は、VSSDBにログイン時に、現在のWindowsユーザー名を適用×
passwordstringVSS DBにログインするためのパスワード×
versionstring指定したバージョン、指定した日付、または指定したラベルが付いているプロジェクトやファイルをチェックアウト/チェックインするように指定。省略された場合は、最新のバージョンを適用×

全タスクに共通の属性

全タスクに共通の属性
属性名説明必須
failonerrorboolタスク実行中にエラーが発生した場合、ビルドプロセスを中止させるかどうか。デフォルト値はtrue×
ifbool値がtrueならば、タスクは実行される。falseならば、タスクはスキップされる。デフォルト値はtrue×
unlessboolif属性の逆。値がfalseならば、タスクは実行される.trueならば、タスクはスキップされる。デフォルト値はfalse×
verbosebool詳細なログを出力するかどうかを設定。デフォルト値はfalse×

ファンクション

 ファンクションの解説は、NAnt公式ページのFunction Referenceを参照願います。

本稿で利用したファンクション一覧
ファンクション名説明
file::exists ファンクション特定のファイルが存在するかどうかを調査
string::contains ファンクション指定した文字列中に、特定の文字列が存在するどうかを調査
string::index-of ファンクション検索対象とする文字列中で、特定の文字列が最初に出現する位置のインデックスを返却
string::starts-with ファンクション対象とする文字列が指定した文字列で始まるかどうかを調査
string::replace ファンクション文字列を置換
string::last-index-of ファンクション検索対象とする文字列中で、特定の文字列が最後に出現する位置のインデックスを返却
int::parse ファンクション指定の文字列を、符号付き32ビット整数に変換

参考資料



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:NAntスクリプトによるビルド効率化TIPS

著者プロフィール

  • WINGSプロジェクト 齋藤 利佳(サイトウ リカ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5