Releases
v1.16.0
Compare
Sorry, something went wrong.
No results found
kan
released this
24 Sep 08:42
Added
lib/doctor.sh にラベル列の幅を求める 2 つの関数を足した。どちらも現在の
BOOCH_DOCTOR_LABEL_WIDTH と最長ラベルの大きいほうを返す。長さは printf の %-*s に合わせて
バイト数で数える。節の前に BOOCH_DOCTOR_LABEL_WIDTH をこの値にすれば、節全体の状態列が揃う。
booch_doctor_labels_width label...: 任意のラベルの集合から求める
booch_doctor_symlinks_width "src|dest"...: booch_doctor_symlinks と同じ規則でラベルを
組み立てて求める。ラベルの組み立て規則を利用側へ写さずに済む
Changed
lib/state.sh と lib/apt.sh で、外部プロセスの起動を減らした。挙動は変わらない(#18 )。
_booch_state_file: id の符号化とパスの返却を printf -v にし、1 文字ごとの fork と、
呼び出しごとのコマンド置換の fork をなくした
booch_state_changed: 記録を cat ではなく read で読む
booch_state_fresh / booch_apt_key_deadline: 現在時刻を date +%s ではなく
printf '%(%s)T' -1 で取る。lib/state.sh は date に依存しなくなった
Fixed
booch_doctor_symlinks で、ラベル(dest の $HOME を ~ に短縮したもの)が
BOOCH_DOCTOR_LABEL_WIDTH(既定 30)を超える行だけ状態の列が後ろへずれていた。関数内で幅を最長
ラベルまで広げて描画する。広げた幅は関数を抜けると元に戻る(#16 )。
booch_doctor_disk が、空き容量が閾値を下回りヒントを渡さなかったときに終了コード 1 を返していた。
set -e の呼び出し側はここで止まっていた。
booch_sudo_stop が、キープアライブの子プロセスが既に無いと pkill の失敗で途中終了していた。
set -e の呼び出し側では PID が残っていた。
テストフレームワーク(tests/lib.sh)が、テスト関数の途中の assert の失敗を見逃していた。
if の条件の中でテストを実行していたため set -e が無効になり、最後の行の終了コードだけで合否を
決めていた。これで隠れていた上の 2 件と、捕捉の仕方を誤っていたテスト 4 件を直した。
You can’t perform that action at this time.