Cygwin で kpcli を使う備忘録

Photo by hyt.

kpcli ってなに?

私はパスワード等の管理はオープンソースソフトウェアの KeePass で行っています.と言うのも,これだと Windows でも Mac でも Android でも ios でも使えるから.

KeePass Password Safe

これ,GUI のクライアントで使うのが一般的だと思うのですが,いつも Cygwin のターミナルで生活していますので,出来れば CUI で使えると嬉しい.と言うことで,色々探していたのですが,

だと,perl スクリプトなので何とかなりそう.と言うことで,実際に入れてみた作業記録なのですが,正直

とっても面倒です!

前提

Cygwin は導入済みとしておきます.また,基本的に,Cygwin を UTF-8 で使っているとしておきます.なお,SJIS でも,少しの変更で何とかなるんではないかと思いますが,これは試していません.

必要な perl のライブラリの整備

まず,結構大量に perl のパッケージを準備しないといけません.おまけに,Cygwin の標準パッケージ管理システムから入れられないものも多い.

まずは,Cygwin の標準パッケージに含まれているもので入れないといけないのは,

  • perl-Term-ReadLine-Gnu
  • perl-TermReadKey
  • perl-Clone
  • perl-Capture-Tiny
  • perl-File-Remove
  • perl-Module-ScanDeps
  • perl-YAML-tiny
  • perl-XML-Parser

です.これは setup-x86_64.exe もしくは,setup-x86.exe  から導入してください.

次に,perl の Module の総本山の CPAN から

をダウンロードしてインストールします.普通は,cpan とか cpanm とか使って入れるのだと思いますが,私の場合は /usr/local 以下にパッケージをインストールしたかったのと,cpan でこのディレクトリ以下にインストールする方法がいまいちよく分からなかったので,あえて,手作業で入れています.要するに「古い」入れ方ですね.

どれもほとんど手順は同じですが,その詳細は以下の通りです.

Crypt-Rijndael-1.13.tar.gz

Sort-Naturally-1.03.tar.gz

File-KeePass-2.03.tar.gz

Term-ShellUI-0.92.tar.gz

Module-Install-1.18.tar.gz

Win32-Clipboard-0.58.tar.gz

Clipboard-0.13.tar.gz

これで準備が整いました.

kpcli の導入

kpcli は単なる perl のスクリプトで,単一のファイルで出来ています.だから,導入は

で終了なのですが,このままだと,日本語の取り扱いに問題があります.これを何とかする為に,kpcli.pl の書き換えを行うのですが,Quick Hack なことに注意してください.

オリジナルとの差分は以下の通り.

とりあえずこれで動いてはいますが,現時点で,

  1. 日本語が含まれる PATH の補間等が上手くいかない
  2. history が文字化けする

等の問題点が残っています.

kpcli の使い方

単に,kpcli.pl と打つだけです.以下の様な感じで使えます.

かなり直感的に使えますし,分からないときは「 ?」 で各コマンドのヘルプが表示されます.特に便利なのが find で,

の様に表示されるので,あとは,

  • xp: Copy password to clipboard
  • xu: Copy username to clipboard
  • xw: Copy URL (www) to clipboard

等を適宜使えば OKです.

おわりに

KeePass のデータベースにコマンドラインからアクセスするプログラムって,探すと幾つか出てくるのですが,KeePass の ver 1 系列のデータベースしかアクセスできなかったり,使い方が良く分からない,もしくは,使い難かったりするものが多くてイマイチでした.

kpcli もそのままだと日本語が使えなかったので,どんなもんかと思ってましたが,単一ファイルで出来た perl のスクリプトなので,何とかなるかなとやってみたのが本備忘録です.

なお,現在,上手くいっていない部分も直そうかと少しチャレンジして,Term::ShellUI 辺りの問題かなと当たりを付けたのですが,修正は結構面倒そうなので,まぁいいかと今のところ放置しています.

気が向いたらまたやってみようかな……

スポンサーリンク
large rectangle advertisement
スポンサーリンク
large rectangle advertisement