|
|
|
Last-modified: 2010-01-08 (金) 12:12:01 (5780d)
指定したフォルダ配下にCheckOutされているsubversionリポジトリを全て更新したい場合に。 //
// 指定したフォルダ配下にCheckOutされているsubversionリポジトリを全て更新する
//
// [前提] svnコマンドにPATHが通っていること。
//
// @author Jomora(kazuhiko@jomura.net)
// @version 2010.01.08 初版作成
// subversionリポジトリを再帰検索する親フォルダ
var targetFolder = "C:\\repos_local";
//**Start Encode**
//main
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var shell = WScript.CreateObject("WScript.Shell");
var rootFolderObj = fso.GetFolder(targetFolder);
UpdateFolder(rootFolderObj);
WScript.Quit(0);
//functions
function UpdateFolder(folderObj) {
if (fso.FolderExists(folderObj.Path + "\\.svn")) {
execUpdate(folderObj);
} else {
var j = new Enumerator(folderObj.SubFolders);
for (; !j.atEnd(); j.moveNext()) {
UpdateFolder(j.item());
}
}
}
function execUpdate(folderObj) {
command = "svn update " + folderObj.Path;
WScript.StdOut.WriteLine(command);
var oExec = shell.Exec(command);
var files = oExec.StdOut;
var buff;
var quit = false;
while(true) {
while(!files.AtEndOfStream) {
buff = files.ReadAll();
WScript.StdOut.WriteLine(buff);
}
if(quit) {
break;
}
quit = (oExec.Status == 1);
WScript.Sleep(100);
}
}
|