Skip to content

v1.19.0

Latest

Choose a tag to compare

@kan kan released this 15 Oct 04:30
c7026b5

Added

  • delta / shellcheck ジョブで、取得した資産の SHA256 を照合するようにした(#20)。upstream はチェックサムを
    公開していないので、GitHub の Releases API が資産に付ける digest を期待値にする。転送中の破損や改ざんは
    検出できるが、資産そのものの差し替え(上流のアカウント侵害)は検出できない

    • lib/github.sh に booch_github_asset_digest / booch_github_verify_asset を足した。digest が付いていない
      (古いリリース)ときは警告して照合を飛ばす。API の取得に失敗したとき(レート制限など)と、digest が一致しない
      ときは失敗にする
    • lib/github.sh は、lib/verify.sh が読み込まれていなければ自分で読み込む(github.sh だけを読む利用側を
      壊さないため)
  • jobs/aws.sh に、AWS CLI v2 の古い版のディレクトリを削除する関数を足した(#22)。公式インストーラの
    install --update は前の版(1 版 約 270MB)を /usr/local/aws-cli/v2/ に残すので、job_aws で更新する
    たびに溜まっていた

    • booch_aws_cli_prune: current 以外の使われていない版を sudo で削除する。初回の削除が大きく
      ジョブのタイムアウトに掛かりうるので、job_aws の中では消さない。利用側の cleanup から呼ぶ
    • booch_aws_cli_stale_versions: 削除してよい版を 1 行ずつ出す(doctor などの表示用)。current の aws が
      自分の版を名乗るときだけ候補を出し、実行中のプロセスが使っている版と、x.y.z 以外の名前や symlink は
      候補にしない。/proc を読めず使用中の版を判定できないとき(sudo の失敗など)は、候補を出さずに非 0 を返す
    • 導入先は BOOCH_AWS_CLI_ROOT で変えられる(既定 /usr/local/aws-cli/v2)
  • jobs/codex.sh に、Codex の共有デーモン(app-server)の版を CLI に合わせる機構を足した(#21)。
    job_codex が CLI を更新しても、動いているデーモンは自分用の codex で古い版のまま残り、Codex が起動時に
    版のずれを警告していた

    • booch_codex_daemon_versions: "<cli> <app>" の 1 行を出す。デーモンが止まっていれば app は空、
      取れなければ非 0(doctor などの表示用)
    • booch_codex_daemon_sync: 版がずれていれば y/N を聞いて codex app-server daemon update する。実行中の
      作業が中断されうるので確認は省かない(非対話なら何もしない)。ジョブは非対話なので、利用側が booch_run の
      後に主シェルから呼ぶ。入れ替えても版がそろわないときと、確認に使う lib/confirm.sh を読み込めないときは
      1 を返す

Changed

  • README と install.sh のワンライナー、および install.sh が gh の keyring を取る curl に
    --proto '=https' --tlsv1.2 を付けた(#20)。リダイレクトで平文の http へ落ちることと、TLS の格下げを拒否する

Fixed

  • apt-get update が一部の repo の index を取得できなくても終了コード 0 を返すため、booch_apt_sync /
    booch_apt_install と install.sh が取得失敗に気付けなかった(#19)。-o APT::Update::Error-Mode=any
    を渡して検出するようにした。この項目を知らない古い apt では無視され、これまでどおり動く
    • booch_apt_sync / booch_apt_install は、検出したときの扱いを環境変数 BOOCH_APT_UPDATE_ERROR_MODE で
      選べる。既定の warn は [WARN] を出し、古い index のまま続行する(一時的な不調で setup 全体を止めない)。
      strict にすると非 0 を返す。Release が無い、ロックを取れないといった、もともと update が非 0 になる
      失敗は、warn でもこれまでどおり非 0 を返す。update の処理は booch_apt_update として公開した
    • install.sh は取得に失敗した時点で止まる(素の OS では、古い index のまま進むと後続の導入も失敗しやすいため)