aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroki Tagato <tagattie@FreeBSD.org>2026-07-29 13:10:32 +0000
committerHiroki Tagato <tagattie@FreeBSD.org>2026-07-29 13:11:46 +0000
commit23d85275c9abfa5017e39055f95df83e9f99278f (patch)
tree6aa12c700c61e84c1e38d9e72a70f74a437835a0
parent778fd68a9feb9d6abb1b76ada69f8b0e6d635bf2 (diff)
shells/iris: Add port: Shell auto-completion tool for your terminal
IRIS is built on top of TTY, so it runs everywhere. It just needs a terminal! Run iris wherever you already work; your local machine, a remote server, or anywhere you can ssh. Each suggestion menu renders directly inline inside your real terminal session, not an app's imitation of one, so it never breaks full-screen TUIs or terminal formatting. Automatically index your aliases and shell history to suggest commands that match your actual workflow in real time. Change configurations and propagate them instantly without restarting your shell. One single local native Go binary, not an app: no gui, no electron, no mac-only wrapper, no account, no telemetry. (if you've used fig: it's that, rebuilt to run purely on TTY) WWW: https://github.com/versenilvis/IRIS
-rw-r--r--shells/Makefile1
-rw-r--r--shells/iris/Makefile53
-rw-r--r--shells/iris/distinfo5
-rw-r--r--shells/iris/pkg-descr13
4 files changed, 72 insertions, 0 deletions
diff --git a/shells/Makefile b/shells/Makefile
index 03757eae6ac9..6506463f3d93 100644
--- a/shells/Makefile
+++ b/shells/Makefile
@@ -26,6 +26,7 @@
SUBDIR += heirloom-sh
SUBDIR += ibsh
SUBDIR += ion
+ SUBDIR += iris
SUBDIR += jailkit
SUBDIR += klish
SUBDIR += ksh
diff --git a/shells/iris/Makefile b/shells/iris/Makefile
new file mode 100644
index 000000000000..ca941d4c3f1f
--- /dev/null
+++ b/shells/iris/Makefile
@@ -0,0 +1,53 @@
+PORTNAME= iris
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.4.5
+CATEGORIES= shells
+
+MAINTAINER= tagattie@FreeBSD.org
+COMMENT= Shell auto-completion tool for your terminal
+WWW= https://github.com/versenilvis/IRIS
+
+LICENSE= BSD0CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= go:1.25+,modules
+
+GO_MODULE= github.com/versenilvis/iris
+GO_TARGET= ./cmd/iris
+GO_LDFLAGS= -w -X github.com/versenilvis/iris/root.Version=${DISTVERSION}
+
+PLIST_FILES= bin/${PORTNAME}
+PORTDOCS= README.md
+
+OPTIONS_DEFINE= COMPLETIONS DOCS
+OPTIONS_DEFAULT= COMPLETIONS
+
+COMPLETIONS_DESC= Build and/or install shell completions
+
+COMPLETIONS_PLIST_FILES=etc/bash_completion.d/${PORTNAME} \
+ share/fish/completions/${PORTNAME}.fish \
+ share/zsh/site-functions/_${PORTNAME}
+
+post-build-COMPLETIONS-on:
+ @${MKDIR} ${WRKSRC}/completions
+.for sh in bash fish zsh
+ ${GO_WRKDIR_BIN}/${PORTNAME} completion ${sh} > \
+ ${WRKSRC}/completions/${PORTNAME}.${sh}
+.endfor
+
+post-install-COMPLETIONS-on:
+ @${MKDIR} ${STAGEDIR}${PREFIX}/etc/bash_completion.d \
+ ${STAGEDIR}${PREFIX}/share/fish/completions \
+ ${STAGEDIR}${PREFIX}/share/zsh/site-functions
+ ${INSTALL_DATA} ${GO_WRKSRC}/completions/${PORTNAME}.bash \
+ ${STAGEDIR}${PREFIX}/etc/bash_completion.d/${PORTNAME}
+ ${INSTALL_DATA} ${GO_WRKSRC}/completions/${PORTNAME}.fish \
+ ${STAGEDIR}${PREFIX}/share/fish/completions/${PORTNAME}.fish
+ ${INSTALL_DATA} ${GO_WRKSRC}/completions/${PORTNAME}.zsh \
+ ${STAGEDIR}${PREFIX}/share/zsh/site-functions/_${PORTNAME}
+
+post-install-DOCS-on:
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_MAN} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/shells/iris/distinfo b/shells/iris/distinfo
new file mode 100644
index 000000000000..c6c2eaba1542
--- /dev/null
+++ b/shells/iris/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1785329243
+SHA256 (go/shells_iris/iris-v0.4.5/v0.4.5.mod) = ca234b8e58a3ca88337c6e4a50225b7170807eca3775caf8c5ad55a456a4d329
+SIZE (go/shells_iris/iris-v0.4.5/v0.4.5.mod) = 1562
+SHA256 (go/shells_iris/iris-v0.4.5/v0.4.5.zip) = 4ab76dc41405134c4dedd2ae2ed3ffc27fef9615ff54c29d0996b1e7b0cf346b
+SIZE (go/shells_iris/iris-v0.4.5/v0.4.5.zip) = 738913
diff --git a/shells/iris/pkg-descr b/shells/iris/pkg-descr
new file mode 100644
index 000000000000..afe5c0cb434c
--- /dev/null
+++ b/shells/iris/pkg-descr
@@ -0,0 +1,13 @@
+IRIS is built on top of TTY, so it runs everywhere. It just needs a
+terminal!
+
+Run iris wherever you already work; your local machine, a remote
+server, or anywhere you can ssh. Each suggestion menu renders directly
+inline inside your real terminal session, not an app's imitation of
+one, so it never breaks full-screen TUIs or terminal
+formatting. Automatically index your aliases and shell history to
+suggest commands that match your actual workflow in real time. Change
+configurations and propagate them instantly without restarting your
+shell. One single local native Go binary, not an app: no gui, no
+electron, no mac-only wrapper, no account, no telemetry. (if you've
+used fig: it's that, rebuilt to run purely on TTY)