7b0780028f
`CDPATH=` already cleared the variable for the `cd` subshell, so this is a readability-only change: `CDPATH=''` is the identical POSIX assignment written with explicit empty quotes. No behavior change, and there was no CDPATH leak to fix.
32 lines
1.2 KiB
Bash
Executable File
32 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# Install the dev `omp` wrapper into Bun's global bin directory.
|
|
#
|
|
# Replaces the bun-shebang symlink that `bun --cwd=packages/coding-agent link`
|
|
# creates (pointing at `src/cli.ts`) with the safer wrapper at
|
|
# `packages/coding-agent/scripts/omp`. See that wrapper's header comment for the
|
|
# bunfig.toml-preload bug it works around.
|
|
#
|
|
# We resolve Bun's global bin path defensively because `bun pm -g bin` aborts
|
|
# (`No package.json was found for directory "$HOME/.bun/install/global"`) on
|
|
# fresh hosts where the global install has not been initialized. Falling
|
|
# through that error would expand `$(bun pm -g bin)/omp` to `/omp` and try to
|
|
# write under `/` — see https://github.com/can1357/oh-my-pi/issues/3701.
|
|
set -e
|
|
|
|
repo_root=$(CDPATH='' cd -- "$(dirname -- "$0")/.." && pwd -P)
|
|
target=$repo_root/packages/coding-agent/scripts/omp
|
|
|
|
if [ ! -x "$target" ]; then
|
|
echo "link-omp: target wrapper not found or not executable: $target" >&2
|
|
exit 1
|
|
fi
|
|
|
|
global_bin=$(bun pm -g bin 2>/dev/null || true)
|
|
if [ -z "$global_bin" ]; then
|
|
global_bin=${BUN_INSTALL:-$HOME/.bun}/bin
|
|
fi
|
|
|
|
mkdir -p "$global_bin"
|
|
ln -sfn "$target" "$global_bin/omp"
|
|
echo "link-omp: linked $global_bin/omp -> $target"
|