Google Drive に ChangeLog メモを置く
デスクトップ環境,ウェブブラウザ,日本語入力環境,Emacs をインストールしたので,だいぶ様々な作業ができる環境が整ってきた.そうなると,作業の記録を取りたくなってくる.適当なファイルに作業メモを記録しておいてもいいが,OS の再インストールの際に誤って消してしまうと悲しい.クラウドに保存しとけば,いきなり HDD などが壊れてもデータが消失することはない(セキュリティー的にリスクは増えるが).
そこで,ChangeLog メモを Google Drive 上に置くことにした.ChangeLog メモとは,横着プログラミング 第1回: Unixのメモ技術や私の ChangeLog メモ活用法で紹介されている ChangeLog 形式でメモを取る方法である.利点や欠点はそれぞれの紹介ページを参照してほしい.ChangeLog メモをクラウドで保存するためには,テキストファイルをクラウド上に保存でき,ネットにつながっていればいつでもそのテキストファイルを(できれば Emacs で)編集できるのが望ましい.一つの解決策として,Google Drive を google-drive-ocamlfuse でマウントして,Emacs からテキストファイルを編集する方法を紹介する.
yaourt で一発 ... ならよかったが,そうは問屋が降ろさない.しかし,誰かが修正して yaourt 一発になる日が来るかもしれない.とりあえず,一度,yaourt でインストールしてみる.
いろいろインストールしないといけないが,最終的に以下のようなエラーメッセージが表示されて異常終了する.
どうやら /usr/lib/ocaml/curl.a と /usr/lib/ocaml/extlib/extLib.a が無いようだ.こんなバグはちょちょいと直してもらいたいものだが,他のツールとの依存関係上,なかなか修正できないのかもしれない.ということで,ocaml-curl と ocaml-extlib を再インストールする.その際に PKGBUILD を多少修正する.まずは yaourt で再インストール.
すると,「PKGBUILD を編集しますか?」と質問されるので,Y と入力する.そして,options を以下のように修正する.
ocaml-curl のインストール後に ocaml-extlib のインストールが始まる.これも同様に PKGBUILD を修正する.こっちの PKGBUILD には options の項目がないので,以下の1行を depends の下に追加する.
インストールが終わった後,再び google-drive-ocamlfuse を再インストールする.
インストール終了.
Google Drive の認証を受けるため,Chrome か FireFox が必要になる.幸いにも以前 Chrome を入れたのですんなりうまくいくかと思ったら,そうでもなかった.
インストールした Chrome は google-chrome-stable だが,google-drive-ocamlfuse が求める Chrome は google-chrome なので,ハードリンクを張ることで問題を解決する.
google-drive-ocamlfuse が起動すると,Chrome 上で google-drive-ocamlfuse が Google Drive にアクセスしていいか許可を求めてくるので承認する.
そして,Google Drive のマウントポイントを作成し,以下のようにマウントする.
これで Google Drive にファイルを置くことができる.df コマンドでマウントできているか確認できる.
ちなみに,マウントした GoogleDrive をユーザーレベルで(sudo を使わないで)アンマウントするのは以下の通り.
~/.emacs.d/init.el に設定を追加して ChangeLog メモを簡単に開けるようにする.以下の設定を init.el に追加するだけ.XXXXX はご自身の名前やメールアドレスを適切に置き換えること.
この設定は上述の「横着プログラミング」を参考にした.
思いついた時にスッと ChangeLog メモを取れるように,スクリプト memo を ~/bin 以下に作成した.~/bin にパスを通しておけば,簡単に起動できる.
実際に memo を実行(& を付けずに memo とだけ入力)すると,Google Drive 上にある Note フォルダの下の diary.txt が表示される(10秒位待たされる場合がある).この時,ミニバッファ(一番下の1行だけのバッファ)に
と表示されるが,y と入力すると,適切な位置に新しいエントリができるので,後はメモを取るだけ.
保存する時にも
と聞かれるので yes と入力する.
メモを取るときは
と打って,起動した Emacs にメモを取り,保存して終了すれば Google Drive をアンマウントしてくれる.Google Drive へのアクセス承認は30日間だけらしいので,後日,再度承認を求められると思う.
今日はこの辺で.
応援よろしくにゃ〜.
にほんブログ村
そこで,ChangeLog メモを Google Drive 上に置くことにした.ChangeLog メモとは,横着プログラミング 第1回: Unixのメモ技術や私の ChangeLog メモ活用法で紹介されている ChangeLog 形式でメモを取る方法である.利点や欠点はそれぞれの紹介ページを参照してほしい.ChangeLog メモをクラウドで保存するためには,テキストファイルをクラウド上に保存でき,ネットにつながっていればいつでもそのテキストファイルを(できれば Emacs で)編集できるのが望ましい.一つの解決策として,Google Drive を google-drive-ocamlfuse でマウントして,Emacs からテキストファイルを編集する方法を紹介する.
google-drive-ocamlfuse のインストール
yaourt で一発 ... ならよかったが,そうは問屋が降ろさない.しかし,誰かが修正して yaourt 一発になる日が来るかもしれない.とりあえず,一度,yaourt でインストールしてみる.
$ yaourt -S google-drive-ocamlfuse
いろいろインストールしないといけないが,最終的に以下のようなエラーメッセージが表示されて異常終了する.
gcc: エラー: /usr/lib/ocaml/curl/curl.a: そのようなファイルやディレクトリはありません gcc: エラー: /usr/lib/ocaml/extlib/extLib.a: そのようなファイルやディレクトリはありません File "caml_startup", line 1: Error: Error during linking Command exited with code 2. Compilation unsuccessful after building 40 targets (0 cached) in 00:00:03. E: Failure("Command ''/usr/bin/ocamlbuild' src/gdfuse.native -tag debug' terminated with error code 10") ==> エラー: build() で問題が発生しました。 中止... ==> エラー: Makepkg was unable to build . ==> google-drive-ocamlfuse のビルドを再開しますか ? [y/N] ==> ------------------------------------------ ==>
どうやら /usr/lib/ocaml/curl.a と /usr/lib/ocaml/extlib/extLib.a が無いようだ.こんなバグはちょちょいと直してもらいたいものだが,他のツールとの依存関係上,なかなか修正できないのかもしれない.ということで,ocaml-curl と ocaml-extlib を再インストールする.その際に PKGBUILD を多少修正する.まずは yaourt で再インストール.
$ yaourt -S ocaml-curl ocaml-extlib
すると,「PKGBUILD を編集しますか?」と質問されるので,Y と入力する.そして,options を以下のように修正する.
options=(!strip !makeflags 'staticlibs')
ocaml-curl のインストール後に ocaml-extlib のインストールが始まる.これも同様に PKGBUILD を修正する.こっちの PKGBUILD には options の項目がないので,以下の1行を depends の下に追加する.
options=('staticlibs')
インストールが終わった後,再び google-drive-ocamlfuse を再インストールする.
$ yaourt -S google-drive-ocamlfuse
インストール終了.
google-drive-ocamlfuse の設定
Google Drive の認証を受けるため,Chrome か FireFox が必要になる.幸いにも以前 Chrome を入れたのですんなりうまくいくかと思ったら,そうでもなかった.
インストールした Chrome は google-chrome-stable だが,google-drive-ocamlfuse が求める Chrome は google-chrome なので,ハードリンクを張ることで問題を解決する.
$ which google-chrome-stable /usr/bin/google-chrome-stable $ pushd /usr/bin $ sudo ln google-chrome-stable google-chrome $ popd $ google-drive-ocamlfuse
google-drive-ocamlfuse が起動すると,Chrome 上で google-drive-ocamlfuse が Google Drive にアクセスしていいか許可を求めてくるので承認する.
そして,Google Drive のマウントポイントを作成し,以下のようにマウントする.
$ cd ~ $ mkdir GoogleDrive $ google-drive-ocamlfuse GoogleDrive
これで Google Drive にファイルを置くことができる.df コマンドでマウントできているか確認できる.
ちなみに,マウントした GoogleDrive をユーザーレベルで(sudo を使わないで)アンマウントするのは以下の通り.
$ fusermount -u GoogleDrive
Emacs の設定
~/.emacs.d/init.el に設定を追加して ChangeLog メモを簡単に開けるようにする.以下の設定を init.el に追加するだけ.XXXXX はご自身の名前やメールアドレスを適切に置き換えること.
;; ChangeLog memo (setq user-full-name "XXXXXXXX") (setq user-mail-address "XXXXXXXX@XXXXXXXX") (defun memo () (interactive) (add-change-log-entry nil (expand-file-name "~/GoogleDrive/Note/diary.txt")))
この設定は上述の「横着プログラミング」を参考にした.
スクリプトの記述
思いついた時にスッと ChangeLog メモを取れるように,スクリプト memo を ~/bin 以下に作成した.~/bin にパスを通しておけば,簡単に起動できる.
$ cd ~ $ mkdir bin $ cd bin $ vi memo #!/bin/bash google-drive-ocamlfuse ~/GoogleDrive emacs --eval "(memo)" fusermount -u ~/GoogleDrive $ chmod a+x memo $ cd ~ $ vi .bashrc export PATH=$PATH:~/bin ← この行を追加 $ . .bashrc
実際に memo を実行(& を付けずに memo とだけ入力)すると,Google Drive 上にある Note フォルダの下の diary.txt が表示される(10秒位待たされる場合がある).この時,ミニバッファ(一番下の1行だけのバッファ)に
diary.txt chaned on disk; really edit the buffer? (y, n, r or C-h)
と表示されるが,y と入力すると,適切な位置に新しいエントリができるので,後はメモを取るだけ.
保存する時にも
diary.txt has changed since visited or saved. Save away? (yes or no)
と聞かれるので yes と入力する.
メモを取るときは
$ memo
と打って,起動した Emacs にメモを取り,保存して終了すれば Google Drive をアンマウントしてくれる.Google Drive へのアクセス承認は30日間だけらしいので,後日,再度承認を求められると思う.
今日はこの辺で.
応援よろしくにゃ〜.
にほんブログ村
コメント
コメントを投稿