fix: tuiからのPod作成の挙動を修正・開発時にcargo runでpodを起動する経路を実装
This commit is contained in:
+20
-1
@@ -1,4 +1,23 @@
|
||||
{ pkgs }:
|
||||
let
|
||||
# Dev-only wrapper. tui の spawn 経路は `pod` バイナリを直に exec し、
|
||||
# stderr の `INSOMNIA-READY` 行で握手するので、cargo の進捗や rustc の
|
||||
# warning が混ざると tail に余計な行が積もり本当のエラーが押し出される。
|
||||
# ここで一度ビルドを切り離し、成功時はビルド出力を一切捨てて素のバイナリ
|
||||
# を exec、失敗時のみ build log を stderr に流して exit する。
|
||||
pod-dev = pkgs.writeShellScriptBin "pod" ''
|
||||
set -u
|
||||
buildlog=$(mktemp)
|
||||
trap 'rm -f "$buildlog"' EXIT
|
||||
if ! cargo build --quiet -p pod 2>"$buildlog"; then
|
||||
cat "$buildlog" >&2
|
||||
exit 1
|
||||
fi
|
||||
manifest=$(cargo locate-project --workspace --message-format plain 2>/dev/null)
|
||||
target_dir=''${CARGO_TARGET_DIR:-$(dirname "$manifest")/target}
|
||||
exec "$target_dir/debug/pod" "$@"
|
||||
'';
|
||||
in
|
||||
pkgs.mkShell {
|
||||
packages = with pkgs; [
|
||||
nixfmt
|
||||
@@ -6,12 +25,12 @@ pkgs.mkShell {
|
||||
git
|
||||
rustc
|
||||
cargo
|
||||
pod-dev
|
||||
];
|
||||
buildInputs = with pkgs; [
|
||||
pkg-config
|
||||
openssl
|
||||
];
|
||||
INSOMNIA_POD_COMMAND = "cargo run -p pod --quiet --";
|
||||
shellHook = ''
|
||||
echo "dev-shell-loaded"
|
||||
'';
|
||||
|
||||
Reference in New Issue
Block a user