curl 指定したurlのデータを転送する。とrubycurlというアイディア
最近、curlという「指定したurlのファイルを標準出力する」コマンドを知ったのでメモしておく。
curlを知ったきっかけ
redmineとrailsの環境を構築しようと思い、mac用にパッケージ管理ツールにHomebrewを導入した。Homebrew OS Xのためのパッケージマネージャー
Homebrewをインストールの流れは、
という流れで行われる。つまりネットにつながっていれば、インストール用のファイルを自分でダウンロードする必要は全くない。(「もちろんrubyやcurlがインストールされている」という前提だけど) Homebrewよりも、この中ででてくるcurlというコマンドに興味を持ったので調べてみた。
curlについて
- 1997年に初版がリリースされている。
- 指定したurlのファイル(データ)を取得(標準出力したりファイルにしたり)できる。
・・・だいぶ昔からあるらしい。 それにしてもたったこれだけの事で、スクリプトの使い方にものすごく幅が出る。シンプルだけどすごいアイディアだ。
curlの利用例
思いついたものをメモしておく。
利用例1:会社で作成したスクリプトをsvnやgitで管理し、どこからでも利用可能にする。
ruby -e "$(curl http://mycompany.co.jp/scripts/ruby/myscript.rb)"
これはHomebrewでの使い方そのまま。会社では、あちこちに散逸しているスクリプトを探して、ローカルディスクにコピーして利用している。ファイルもsvn上にあったり無かったりするので版もめちゃくちゃ。けどこうすれば最新も常にsvn上にあるし、いちいちファイルを取得する必要もなくなる。 (・・・「curl以前にスクリプトの保管方法を見直せ」という話。)
ふと思ったけど、rubycurlとか適当なバッチを用意しておき、どこかに検索対象のbaseurl(例えばhttp://mycompany.co.jp/scripts/)を登録しておけば
rubycurl myscript.rb
なんてこともできる気がする。
利用例2:テストケースに利用する
webアプリを作ったとき、データのみを出力するurlを作成しておけば、それをcurlで取得できるので、 jUnitなどでwebアプリの単体試験も行いやすいのではないだろうか?(webアプリの単体テストは未経験なので、もっと簡単で一般的な方法があるのかもしれないけど)