# ring-v0.17 does not support this arch
NOT_FOR_ARCHS = sparc64

COMMENT =	OpenAI terminal-based coding agent

V =		0.82.0
GH_ACCOUNT =	openai
GH_PROJECT =	codex
GH_TAGNAME =	rust-v${V}
PKGNAME =	codex-${V}

# only build the Rust workspace (the repo also contains JS tooling).
WRKSRC =	${WRKDIST}/codex-rs

DIST_TUPLE += github nornagon crossterm 87db8bfa6dc99427fd3b071681b07fc31c6ce995 ../crossterm
DIST_TUPLE += github nornagon ratatui 9b2ad1298408c45918ee9f8241a6f95498cdbed2 ../ratatui

CATEGORIES =	devel

HOMEPAGE =	https://github.com/openai/codex

# Apache 2.0
PERMIT_PACKAGE =	Yes

WANTLIB += ${MODCARGO_WANTLIB} crypto dbus-1 m ssl util zstd

LIB_DEPENDS =	archivers/zstd \
		x11/dbus

RUN_DEPENDS =	textproc/ripgrep

MODULES =	devel/cargo
CONFIGURE_STYLE = cargo

# install the CLI crate ('codex')
MODCARGO_INSTALL_TARGET_PATHS = cli

# test suite expects network access and a configured OpenAI account
NO_TEST =	Yes

post-patch:
	cd ${WRKSRC} && ${SUBST_CMD} \
	    arg0/src/lib.rs

post-build:
.for s in bash fish zsh
	cd ${WRKBUILD}/target/release && \
		./codex completion $s > codex.$s
.endfor

post-install:
	${INSTALL_DATA_DIR} ${PREFIX}/share/examples/rustic \
		${PREFIX}/share/bash-completion/completions \
		${PREFIX}/share/fish/vendor_completions.d \
		${PREFIX}/share/zsh/site-functions
	${INSTALL_DATA} ${WRKBUILD}/target/release/codex.bash \
		${PREFIX}/share/bash-completion/completions/codex
	${INSTALL_DATA} ${WRKBUILD}/target/release/codex.fish \
		${PREFIX}/share/fish/vendor_completions.d/
	${INSTALL_DATA} ${WRKBUILD}/target/release/codex.zsh \
		${PREFIX}/share/zsh/site-functions/_codex
	${INSTALL_DATA_DIR} ${PREFIX}/share/doc/codex
	cp -r ${WRKDIST}/docs/* ${PREFIX}/share/doc/codex/

.include "crates.inc"

.include <bsd.port.mk>
