chat-hatenablogをpip installでインストール可能にした - $shibayu36->blog;にてchat-hatenablogをpip installできるようにするとき、ユーザー設定ファイルやデータをどこに配置するかに迷った。このツールでは、環境変数の設定として.envファイルを、ブログデータのインデックスとしてindex.pickleファイルを使っている。
これらのファイルの置き場所について少しだけ調べたので、現状分かったことをメモしておく。
まず選択肢としては二つありそうだった。
~/.chat-hatenablog/.env
と~/.chat-hatenablog/index.pickle
- 例)
~/.asdf
、~/.docker
、~/.gem
など
- 例)
- XDG Base Directoryの仕様に沿って、
~/.config/chat-hatenablog/.env
と~/.local/share/chat-hatenablog/index.pickle
- 例)
~/.config/gh/
、~/.local/share/direnv
など - 参考: https://wiki.archlinux.jp/index.php/XDG_Base_Directory 。仕様として https://specifications.freedesktop.org/basedir-spec/latest/ にまとまっている
- 例)
今回はディレクトリを二つに分けるの面倒だなと思い、~/.chat-hatenablog/
配下に置くという選択を取った。
一方でXDG Base Directoryの仕様に沿うと、利用ユーザーがXDG_CONFIG_HOME
環境変数などを用いて設定ファイルの配置場所をコントロールできるというメリットがありそうだ。例えばpecoだとこのようにXDG_CONFIG_HOMEやXDG_CONFIG_DIRSを参照している。
そういうわけで、ちゃんとしたツールを作るならXDG Base Directoryの仕様に沿って作ると良いと分かった。またRaycastといったツールも同じようなディレクトリ構成になっているため、CLIツールに限らず、このような配置を使えば良さそうだ。