taka-tuos / nanotodon

CLI mastodon client
MIT License
37 stars 6 forks source link

設定のディレクトリ化とXDG Base Directoryサポート #13

Closed shibafu528 closed 4 years ago

shibafu528 commented 4 years ago

設定ファイルが$HOME直下にぶちまけられて鬱病になりそうだったので、サブディレクトリを作成するような対応を入れました。

ついでに、XDG Base Directory準拠っぽく作成するようにしてありますが、これは好みの問題もありそうなのでmake時の定数や環境変数なんかで切り替えられる形にするのも良いかもしれませんね。

taka-tuos commented 4 years ago

$XDG_CONFIG_HOME がなかったら $HOME/.config がデフォルト、という挙動が望ましい気はします

taka-tuos commented 4 years ago

あ、すんませんその挙動のようです(他人のコードが読めない人)

taka-tuos commented 4 years ago

最初にXDG_CONFIG_HOMEを見てなかったら~/.configを見て、無い/掘れないばあい~/.nanotodonを掘って、その下に設定ファイルを入れる、という挙動という認識でいいですかね

shibafu528 commented 4 years ago

最初にXDG_CONFIG_HOMEを見てなかったら~/.configを見て、無い/掘れないばあい~/.nanotodonを掘って、その下に設定ファイルを入れる、という挙動という認識でいいですかね

その認識でOKです! どこにも設定ディレクトリを作成できない場合には回復不能エラーとして強制終了とします。

……が、ちょっと半端に手を入れて一時的に壊れています。後ほど修正しますので、一旦は保留してください。

shibafu528 commented 4 years ago

PR内のバグをいくつか修正し、XDG Base Directoryサポートをビルド時に決定するオプションにしました。

Makefileの書き方をよく知らないのですが、この手の機能サポートの有無を扱うdefineの表現って作法とかあるんでしょうか?

tsutsui commented 4 years ago

Makefileの書き方をよく知らないのですが、この手の機能サポートの有無を扱うdefineの表現って作法とかあるんでしょうか?

特に作法というほどのものはないと思いますが、 CFLAGS の記載に関して行単位でコメントアウトしたくなるので

CFLAGS = -g
# 最適化
#CFLAGS+= -O2
# XDG Base Directoryサポート有効 (無効のときは $HOME/.nanotodon を使う)
CFLAGS+= -DSUPPORT_XDG_BASE_DIR
# pkgsrc の ncursesw と curl を使ってビルドするときに有効にする
#CFLAGS+= -I/usr/pkg/include -I/usr/pkg/include/ncursesw -DNCURSES_WIDECHAR

みたいな感じに機能別に別の行にして雑コメントを書くと 手修正やパッケージシステムでの雑パッチがちょっとやりやすい、 というくらいでしょうか。

まじめにやるなら autoconf 使って configure 対応する、ですが、 nanotodon の思想からは外れそう。

taka-tuos commented 4 years ago

tsutsui氏と同意見です、configureは(自分が使ったことないのもあるが)ちょっと重たいかなぁという。 現時点で導入予定はない、という感じです

Makefileの行ごとの分割をmerge後ででやるか、このPR内でやるか、どうしましょう?

tsutsui commented 4 years ago

Makefileの行ごとの分割をmerge後ででやるか、このPR内でやるか、どうしましょう?

このPRは現状でマージでOKです。 merge 後に pkgsrc 分を含めて別PR出します。

shibafu528 commented 4 years ago

tsutsui氏と同意見です、configureは(自分が使ったことないのもあるが)ちょっと重たいかなぁという。 現時点で導入予定はない、という感じです

了解しました。では現状でお願いします。

taka-tuos commented 4 years ago

対応遅れました、まとまったのでマージします