Skip to content

Commit b23219d

Browse files
author
Vladislav Forsh
committed
fix: bundle daemon sidecars in app build
1 parent 4090614 commit b23219d

File tree

5 files changed

+79
-1
lines changed

5 files changed

+79
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ CodexMonitor.zip
3333
.claude/
3434
.cursor/
3535
public/assets/material-icons/
36+
src-tauri/binaries/
3637

3738
# Nix
3839
result

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,8 @@ Build the production Tauri bundle:
217217
npm run tauri:build
218218
```
219219

220+
`tauri:build` now prepares and bundles both sidecars (`codex_monitor_daemon` and `codex_monitor_daemonctl`) into the app bundle automatically.
221+
220222
Artifacts will be in `src-tauri/target/release/bundle/` (platform-specific subfolders).
221223

222224
### Windows (opt-in)

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"dev": "vite",
1111
"prebuild": "npm run sync:material-icons",
1212
"build": "tsc && vite build",
13+
"build:tauri-sidecars": "sh scripts/build-tauri-sidecars.sh",
1314
"build:appimage": "NO_STRIP=1 tauri build --bundles appimage",
1415
"doctor": "sh scripts/doctor.sh",
1516
"doctor:strict": "sh scripts/doctor.sh --strict",

scripts/build-tauri-sidecars.sh

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5+
repo_root="$(cd "${script_dir}/.." && pwd)"
6+
src_tauri_dir="${repo_root}/src-tauri"
7+
binaries_dir="${src_tauri_dir}/binaries"
8+
9+
build_target="${TARGET:-${CARGO_BUILD_TARGET:-}}"
10+
if [[ -z "${build_target}" ]]; then
11+
build_target="$(rustc -vV | awk '/^host: / { print $2 }')"
12+
fi
13+
if [[ -z "${build_target}" ]]; then
14+
echo "Failed to resolve Rust target triple"
15+
exit 1
16+
fi
17+
18+
cargo_target_args=()
19+
release_dir="${src_tauri_dir}/target/release"
20+
if [[ -n "${TARGET:-${CARGO_BUILD_TARGET:-}}" ]]; then
21+
cargo_target_args=(--target "${build_target}")
22+
release_dir="${src_tauri_dir}/target/${build_target}/release"
23+
fi
24+
25+
bin_ext=""
26+
if [[ "${build_target}" == *windows* ]]; then
27+
bin_ext=".exe"
28+
fi
29+
30+
mkdir -p "${binaries_dir}"
31+
32+
daemon_sidecar_path="${binaries_dir}/codex_monitor_daemon-${build_target}${bin_ext}"
33+
daemonctl_sidecar_path="${binaries_dir}/codex_monitor_daemonctl-${build_target}${bin_ext}"
34+
35+
# Bootstrap sidecar paths so tauri's build-script path checks can pass.
36+
if [[ ! -f "${daemon_sidecar_path}" ]]; then
37+
: > "${daemon_sidecar_path}"
38+
fi
39+
if [[ ! -f "${daemonctl_sidecar_path}" ]]; then
40+
: > "${daemonctl_sidecar_path}"
41+
fi
42+
if [[ -z "${bin_ext}" ]]; then
43+
chmod +x "${daemon_sidecar_path}" "${daemonctl_sidecar_path}"
44+
fi
45+
46+
(
47+
cd "${src_tauri_dir}"
48+
if [[ ${#cargo_target_args[@]} -gt 0 ]]; then
49+
cargo build --release "${cargo_target_args[@]}" \
50+
--bin codex_monitor_daemon \
51+
--bin codex_monitor_daemonctl
52+
else
53+
cargo build --release \
54+
--bin codex_monitor_daemon \
55+
--bin codex_monitor_daemonctl
56+
fi
57+
)
58+
59+
cp -f \
60+
"${release_dir}/codex_monitor_daemon${bin_ext}" \
61+
"${daemon_sidecar_path}"
62+
cp -f \
63+
"${release_dir}/codex_monitor_daemonctl${bin_ext}" \
64+
"${daemonctl_sidecar_path}"
65+
66+
if [[ -z "${bin_ext}" ]]; then
67+
chmod +x "${daemon_sidecar_path}" "${daemonctl_sidecar_path}"
68+
fi
69+
70+
echo "Prepared sidecars for ${build_target} in ${binaries_dir}"

src-tauri/tauri.conf.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"build": {
77
"beforeDevCommand": "npm run dev",
88
"devUrl": "http://localhost:1420",
9-
"beforeBuildCommand": "npm run build",
9+
"beforeBuildCommand": "npm run build && ./scripts/build-tauri-sidecars.sh",
1010
"frontendDist": "../dist"
1111
},
1212
"app": {
@@ -43,6 +43,10 @@
4343
"active": true,
4444
"targets": "all",
4545
"createUpdaterArtifacts": true,
46+
"externalBin": [
47+
"binaries/codex_monitor_daemon",
48+
"binaries/codex_monitor_daemonctl"
49+
],
4650
"iOS": {
4751
"frameworks": [
4852
"libz.tbd",

0 commit comments

Comments
 (0)