git: 54df5f83c498 - main - devel/linenoise: New port: Small self-contained alternative to readline and libedit

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sun, 16 Jul 2023 01:15:22 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=54df5f83c498810f0ee0db26645304efc9c41fcb

commit 54df5f83c498810f0ee0db26645304efc9c41fcb
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-07-16 01:13:44 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-07-16 01:15:20 +0000

    devel/linenoise: New port: Small self-contained alternative to readline and libedit
    
    devel/linenoise-ng exists, but its repository was last updated in 2017 and is archived now.
    devel/linenoise was last updated in 2023 and it looks like it is actively maintained.
---
 devel/Makefile            |  1 +
 devel/linenoise/Makefile  | 34 ++++++++++++++++++++++++++++++++++
 devel/linenoise/distinfo  |  3 +++
 devel/linenoise/pkg-descr | 11 +++++++++++
 4 files changed, 49 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 6c0843c1c908..b8d370300ce5 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1451,6 +1451,7 @@
     SUBDIR += libzookeeper
     SUBDIR += libzvbi
     SUBDIR += lightning
+    SUBDIR += linenoise
     SUBDIR += linenoise-ng
     SUBDIR += linux-c7-dbus-libs
     SUBDIR += linux-c7-devtools
diff --git a/devel/linenoise/Makefile b/devel/linenoise/Makefile
new file mode 100644
index 000000000000..4d6670848bfe
--- /dev/null
+++ b/devel/linenoise/Makefile
@@ -0,0 +1,34 @@
+PORTNAME=	linenoise
+DISTVERSION=	1.0-34
+DISTVERSIONSUFFIX=	-g93b2db9
+CATEGORIES=	devel
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Small self-contained alternative to readline and libedit
+WWW=		https://github.com/antirez/linenoise
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USE_LDCONFIG=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	antirez
+
+PLIST_FILES=	include/linenoise.h \
+		lib/liblinenoise.so
+
+do-build:
+	@cd ${WRKSRC} && \
+		${SETENV} ${MAKE_ENV} ${CC} ${CFLAGS} -shared -fPIC linenoise.c -o liblinenoise.so
+
+do-install:
+	${INSTALL_DATA} ${WRKSRC}/linenoise.h ${STAGEDIR}${PREFIX}/include
+	${INSTALL_LIB} ${WRKSRC}/liblinenoise.so ${STAGEDIR}${PREFIX}/lib
+
+do-test:
+	@cd ${WRKSRC} && \
+		${SETENV} ${MAKE_ENV} ${MAKE} && \
+		./linenoise_example
+
+.include <bsd.port.mk>
diff --git a/devel/linenoise/distinfo b/devel/linenoise/distinfo
new file mode 100644
index 000000000000..3fda74772567
--- /dev/null
+++ b/devel/linenoise/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1689442008
+SHA256 (antirez-linenoise-1.0-34-g93b2db9_GH0.tar.gz) = cf2c6ed16585313530798294086260e3b8fe67097eb66ca39c4b8e740d128b69
+SIZE (antirez-linenoise-1.0-34-g93b2db9_GH0.tar.gz) = 21446
diff --git a/devel/linenoise/pkg-descr b/devel/linenoise/pkg-descr
new file mode 100644
index 000000000000..74d9aa59cdbe
--- /dev/null
+++ b/devel/linenoise/pkg-descr
@@ -0,0 +1,11 @@
+linenoise is a minimal, zero-config, BSD licensed, readline replacement used
+in Redis, MongoDB, Android and many other projects.
+
+Features:
+* Single and multi line editing mode with the usual key bindings implemented.
+* History handling.
+* Completion.
+* Hints (suggestions at the right of the prompt as you type).
+* Multiplexing mode, with prompt hiding/restoring for asynchronous output.
+* About ~850 lines (comments and spaces excluded) of BSD license source code.
+* Only uses a subset of VT100 escapes (ANSI.SYS compatible).