Skip to content

server: -d/--database をサブコマンド側でもグローバル側でも受け付ける - #336

Merged
znz merged 2 commits into
rurema:masterfrom
znz:server-database-option
Sep 26, 2026
Merged

znz merged 2 commits into
rurema:masterfrom
znz:server-database-option

Conversation

@znz

@znz znz commented Sep 12, 2026

Copy link
Copy Markdown
Member

Refs #335(不具合 1)

概要

bitclust server は runner の DB 必須チェック(needs_database?)がグローバル --database を見る一方、ServerCommand#parse は自前の --database を見ていたため、片方だけでは「no database given」か「missing database path」で止まり、両方に書かないと起動できませんでした。doc/usage.md の例 bitclust server -d ./db-3_4 ... も server 側に -d が無く ambiguous option でした(bitclust setup 済みで設定ファイルがあると既定 DB が入るので気づきにくい状態でした)。

変更点

  • ServerCommand#needs_database? を false にして runner にグローバル側を要求させない(ancestors と同じ扱い)
  • DB パスの解決を exec 時の resolve_dbpath に移し、サブコマンド側の -d/--database が無ければグローバル --database(options[:prefix])を使う。どちらも無く --auto でもなければ従来どおり案内して終了
  • server に短縮形 -d を追加(usage.md の例がそのまま動く)
  • usage.md にグローバル側で指定する例と、--debug なしはデーモン化することを追記

検証

  • 新規 test/test_server_command.rb(5 件)・全テスト green・steep check OK
  • 実 DB(3.4)で server -d DB / -d DB server / server --database=DB の 3 形式とも起動し /view/class/Array が 200

🤖 Generated with Claude Code

runner の DB 必須チェック(needs_database?)はグローバル --database を、
ServerCommand#parse は自前の --database を見ていたため、片方だけでは
「no database given」か「missing database path」で起動できなかった。
usage.md の例 `bitclust server -d ./db-3_4 ...` も server 側に -d が無く
ambiguous option だった。

- ServerCommand#needs_database? を false にして runner に要求させない
  (ancestors と同じ扱い)
- DB パスの解決を exec 時の resolve_dbpath に移し、サブコマンド側の
  -d/--database が無ければグローバル --database(options[:prefix])を使う
- server に短縮形 -d を追加
- usage.md にグローバル側で指定する例と、--debug なしはデーモン化する
  ことを書き添える

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Comment thread doc/usage.md Outdated
bitclust -d ./db-3_4 server --baseurl="" --port=30080 --debug # グローバル側の -d でも可
```

`--debug` を付けないとデーモンとして起動します(端末には戻ってきます)。

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「(端末には戻ってきます)」は不要に感じました。残すなら「(端末に戻ってきます)」でしょうか。

Comment on lines +223 to +224
$stderr.puts "missing database path. Use --database (-d)"
exit 1

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

abort("...message...") にまとめられそうです。

- usage.md の「(端末には戻ってきます)」を削除
- resolve_dbpath の stderr 出力+exit を abort にまとめる
- テストファイル冒頭の経緯説明を削除(経緯はコミットログと PR に残す)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@znz

znz commented Sep 25, 2026

Copy link
Copy Markdown
Member Author

レビューありがとうございます。0ab0919 で対応しました。

  • usage.md の「(端末には戻ってきます)」は削除しました
  • resolve_dbpath の stderr 出力+exit は abort にまとめました
  • 「経緯はコード中に残さない」の指摘(server: /opensearchdescription が 500 になるのを直す #339)をこの PR にも適用し、テストファイル冒頭の経緯説明を削除しました

🤖 Generated with Claude Code

@znz
znz merged commit 7d3cc7b into rurema:master Sep 26, 2026
10 checks passed
znz added a commit to znz/bitclust that referenced this pull request Sep 28, 2026
v1.7.0 以降の変更を収録する。

- rurema#332 DB 無し時のリモート検索フォールバック
- rurema#331 front matter のゲート付きリストの #%else/#%version 対応(rurema#333)
- rurema#335 出力監査で見つかった server/query/epub/chm/highlighter/extract の
  不具合修正(rurema#336〜rurema#342)と経緯コメントの整理(rurema#343)
- rurema#345 動かないもの・旧 RD ソース専用の tools の削除(rurema#346)

新規 gem は無いので trusted publisher の追加登録は不要。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant