feat: add Homebrew support and rename CLI to Grimoire - #218
Conversation
| fi | ||
| info "Installing dependencies…" | ||
| (cd "${INSTALL_DIR}" && bun install --production) | ||
| (cd "${INSTALL_DIR}" && bun install --production --frozen-lockfile) |
| cwd: dirs.daemonDir, | ||
| env: smokeEnv(dirs, port), | ||
| const installEnv = smokeEnv(dirs, port); | ||
| const installer = spawnSync("bash", [join(releaseRoot, "daemon", "install.sh")], { |
| rmSync(dirs.frontendDir, { recursive: true, force: true }); | ||
| rmSync(join(dirs.binDir, "littleimp"), { force: true }); | ||
| const uninstallEnv = smokeEnv(dirs, port); | ||
| const uninstall = spawnSync("bash", [join(dirs.daemonDir, "install.sh"), "--uninstall"], { |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c02fcc9c58
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| fi | ||
| local cli_path | ||
| for cli_path in "${CLI_BIN}" "${LEGACY_CLI_BIN}"; do | ||
| if [[ -f "${cli_path}" ]] && grep -Fq "${INSTALL_DIR}/src/cli.ts" "${cli_path}" 2>/dev/null; then |
There was a problem hiding this comment.
Match the escaped CLI path during uninstall
When HOME or another installation-path component contains spaces or shell metacharacters, write_cli_wrapper serializes the target with printf %q (for example, /Users/First\ Last/...), but this check searches for the unescaped ${INSTALL_DIR}/src/cli.ts. Consequently, --uninstall deletes the daemon while leaving both grimoire and littleimp wrappers behind, pointing to a nonexistent file; compare against the escaped representation or otherwise identify installer-owned wrappers without relying on this literal match.
Useful? React with 👍 / 👎.
|




Summary
Validation
Release note
The formula is prepared for the goniszewski/grimoire tap. Live Homebrew validation still requires publishing a repackaged release archive containing the new CLI entrypoint and update guard, followed by the published-archive and tap smoke tests. This PR does not publish the release or tap.