GoogleCL brings Google services to the command line.

Googleのサービスがコマンドラインから使えればいいのにと考えるデベロッパやプログラマは少なくない。google(1)があればいいのに、というわけだ。コマンドで処理できるならシェルスクリプトに組み込んで処理の自動化が簡単にできる。それに、今日の予定を知りたい場合にブラウザを起動してGoogle Calendarを閲覧する必要がなく、「google calendar today」のようなコマンドで本日のイベント情報が表示されれば、実のところそれで事が足りる。

19日(米国時間)、Googleはそんな夢のようなコマンドをgooglecl - Project Hosting on Google Codeとして公開した。Pythonで開発されたコマンドで、コマンド名はずばり"google"だ。Googleが提供しているサービスをコマンドラインから利用できるようにしてくれる。今のところサポートされているサービスはBlogger、Calendar、Contacts、Docs、Picasa、YouTube。サポートしているコマンドは次のとおり。

サービス サポートされているコマンド
Blogger post, list, delete, tag
Calendar add, today, list, delete
Contacts add, list, delete
Docs delete, list, upload, edit, get
Picasa craete, get, list, post, tag, delete
YouTube post, delete, list, tag

今のところインストールはFreeBSDやUbuntu、Mac OS Xなどが簡単。FreeBSDはPorts Collectionのnet/googleclに登録されている。「portsnap fetch update; cd /usr/ports/net/googlecl; make install clean」となる。Mac OS XであればMacPortsを最新版に更新してからgoogleclをインストールすればいい。「sudo port selfupdate; sudo port install googlecl」となる。Ubuntuの場合、python-gdataをインストールしてから提供されているDEBパッケージをインストールする。「sudo apt-get install python-gdata; sudo dpkg -i googlecl*.deb」となる。

google(1)のコマンドは「google サービス名 命令 オプション」のスタイルに統一されている。単発コマンドとして実行することも、インタラクティブシェルモードで対話的に使用することも可能。ただし、最初の一回だけはサービスごとにログイン処理が必要。対象となるサービスを使う対処の段階で一回だけブラウザが起動し、そこでアクセス許可をするように求められる。このため、最初の実行にはブラウザが起動可能な環境が必要。

google(1)コマンドの使用例

サービスごとに最初の一回はブラウザを使ったアクセス許可が必要

どのようにコマンドが利用できるかはExampleScriptsにサンプルがまとまっており参考になる。GoogleCLを使うとこれまでブラウザを使って繰り返しおこなってきた作業をシェルやシェルスクリプトから自動化できて便利。まだリリースされたばかりだが、今後の改善と機能追加、新しい対応サービスの追加が期待される。