fcomment

ちょうどやけにレポートだのなんだのがあって、論文やら何やらがぐちゃぐちゃと増えてきて pdf をうまく整理する方法無いかなーと模索していたころに k.inaba さんの検索は便利だという話を読んだ。

http://www.kmonos.net/wlog/#_0141040716

で、とりあえず BeOS Max を入れてみたけどネットワークカード認識しないや。よく考えると Linux でも認識させるのに苦労するんだからムリに決まってるや。 BeOS をファイルサーバにできたら便利な気がしたんだけどね…

BeOS 話を見る前から気付いてた結論なんですけど、私の場合、何でも検索できる必要は全く無くて、適当に拾って来るようなファイルだけが問題なのだよねえと思い、システム以外のファイルについて考えてみることに。自分/他人が書いたソースコード/文書、音楽、動画、画像、とそんなとこか。あまし収集癖のある人間では無いので音楽、動画、画像はわりとどうでもいい。やはし pdf だけ整理できれば十分だという結論に。

といいつつ pdf 以外にも使えるものを作った。

http://shinh.skr.jp/koneta/fcomment.rb

使いかた。まずスクリプト内の HOME_DIR を書きかえて下さい。で、

fcomment hoge.pdf

などとすると環境変数 EDITOR を使いつつ hoge.pdf へのコメントを求めてくる。 pdf の場合は最初の二行はコメントに勝手に入れてくれる (pdftotext 必須)。で、

fcomment -o hoge.pdf

などとすると hoge.pdf の情報が見れる。あと、

fcomment -q hoge

なんてすると hoge をファイル名かコメントに含む全てのファイルの情報を表示。

fcomment -q /pdf$/

/ で囲むと正規表現扱い。これだと pdf を検索できる。

ファイルの情報はフルパス・SHA1 の二種類の情報を保持している。ディレクトリの場合はどうしようかと思ったけどとりあえず inode を保持する。定数 USE_INODE を false にするとディレクトリ名を使う。その場合同じディレクトリ名を使うとややこしいことになってしまうはず。で、フルパスと SHA1 のどちらかが一致すれば OK 。片方が一致していない場合は自動的に更新される。

fcomment.cgi に名前を変えればそのまま cgi になる。出てきた検索窓に hoge とか入れると検索可能。

pdf に関しては今後ダウンロードする時にコメントを入れることにするため、 pdfproc というのを作った。こんな感じ。

#!/bin/sh

pdf=`basename $@`
cd $HOME/pdf
screen sh -c "wget $@; (echo $W3M_TITLE; echo $W3M_URL; echo $@) | fcomment $pdf
; fcomment $pd"f

.w3m/keymap に

keymap ! EXTERN_LINK "pdfproc %s"

などと加えた。ダウンロードした URL も記録できるので少し便利な予定。

いろいろ示唆を下さった、Zinniaさんごにいさんsayさん に感謝。メモ。 BTRON はすごいらしい。 howm に戻るのか?ローカルファイルと関連付けする Wiki。マルチパートメールで更新する WikiWebDAV。しかしそのありがたい示唆と全く関係無いものを作るというのもどうか。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h