Files
dotfiles/bin/codex-gemma
2026-06-23 10:22:59 +02:00

48 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env zsh
set -euo pipefail
CODEX_BIN="${CODEX_BIN:-/opt/homebrew/bin/codex}"
CODEX_GEMMA_HOME="${CODEX_GEMMA_HOME:-${HOME}/.codex-gemma}"
CODEX_GEMMA_MODEL="${CODEX_GEMMA_MODEL:-gemma4:26b-a4b-it-q4_K_M}"
export CODEX_HOME="${CODEX_GEMMA_HOME}"
export PATH="${HOME}/bin:${PATH}"
if [[ ! -x "${CODEX_BIN}" ]]; then
print -u2 -- "Codex binary not found or not executable: ${CODEX_BIN}"
exit 1
fi
if ! command -v ollama >/dev/null 2>&1; then
print -u2 -- "ollama is not available on PATH"
exit 1
fi
if ! ollama list | awk 'NR > 1 { print $1 }' | grep -Fxq -- "${CODEX_GEMMA_MODEL}"; then
print -u2 -- "Ollama model is not installed: ${CODEX_GEMMA_MODEL}"
print -u2 -- "Install it with: ollama pull ${CODEX_GEMMA_MODEL}"
exit 1
fi
args_include_cd() {
local arg
for arg in "$@"; do
case "${arg}" in
-C|--cd|-C=*|--cd=*)
return 0
;;
esac
done
return 1
}
codex_args=(--oss --local-provider ollama -m "${CODEX_GEMMA_MODEL}")
if [[ "${PWD}" == "${HOME}" ]] && ! args_include_cd "$@"; then
original_pwd="${PWD}"
builtin cd "${TMPDIR:-/private/tmp}"
codex_args+=(--cd "${original_pwd}")
fi
exec "${CODEX_BIN}" "${codex_args[@]}" "$@"