2004/12/15

dumpファイル取得用phpスクリプト

subversionのレポジトリをダンプしてダウンロードするんにいちいちサーバを操作するんがめんどくさかったんで、phpでダンプを取るためのスクリプトを書いてみた。
ブラウザで、/path/to/script.php/repositoryName.dmp のように、このスクリプトのURLの後に「/レポジトリ名.dmp」と入れてやると、ダンプファイルをダウンロードする。
ちょっと思いのほか便利。
<?php

define("REPOS_HOME", "/home/svn/repos");
define("SVN_ADMIN", "/usr/local/bin/svnadmin");

dumpRepository(getRepositoryName($_SERVER["PATH_INFO"]));

function getRepositoryName($pathInfo) {

   $fileName = substr($pathInfo, 1);
   list($repository) = split("\.", $fileName, 2);
   $repository = escapeshellcmd($repository);

   return $repository;
}

function dumpRepository($repository) {
   header("Content-type: application/svndump");
   header("Content-Disposition: attachement; filename=${repository}.dmp");
   passthru(SVN_ADMIN . " dump " . REPOS_HOME . "/${repository}");
}
?>
どうせやったらRubyで書いた方がかっこよかったかな?勉強にもなったはずやし...

0 件のコメント: