ブックマークレット
以下をブックマークに登録し、ハイライトされたコマンドをコピーして、ターミナルで実行。
javascript:(function(){var svn_url = document.location.href.replace("tree/master","trunk");var command = "svn export " + svn_url;var q = document.createElement("input");q.style.position="fixed";q.style.top="10px";q.style.left="10px";q.style.zIndex=999999;q.style.width="300px";q.type="textarea";q.value = command;document.body.appendChild(q);q.focus();q.select();})();
動作
どこかのリポジトリの子ディレクトリで、ブックマークレットを実行すると・・・
svn export のコマンドが画面左上に作られるので、それをコピーして、ターミナルで実行。
解説
GitHubには、Subversionのインターフェースもあって、SubversionはDirectory単位のエクスポートやチェックアウトが可能なので、それを使ってる。
ブックマークレットがやってる処理は以下の2つ。
- urlの"tree/master"を"trunk"に置換
- それを svn export のurlに指定して、画面上にテキストを表示
- GitHub以外で起動しても、意味のないコマンドができちゃうけど、そのエラー処理はやってない
- svnコマンドはインストールされている前提(手元のOSXでは知らない間に入っていた)
これくらい手動でしてもいいんだけど、勉強中は大量にサンプルを落としてきては、動作確認をしたいので、機会的にできるようにブックマークレット化。
背景
Xamarinの開発をやりはじめて、サンプルソースがいっぱいGitHubにあるのはわかったのだが、リポジトリ配下にいっぱいソリューション(プロジェクト)が、あって、「欲しいサンプルだけ取り出したい」ってシーンが多かった。
ブラウザ上の処理と、ファイルダウンロードって導線が作りづらいのだけど、「画面上にコマンドを表示して全選択」というところまでやってあげるのが、セキュリティ的な課題もなく、ちょうど良い気がする。