git: c721369988fc - main - sysutils/orch: add a new port for program orchestration
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 18 Jan 2024 02:34:58 UTC
The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/ports/commit/?id=c721369988fc8a9c959a7dc64fa5060812ee5ebe commit c721369988fc8a9c959a7dc64fa5060812ee5ebe Author: Kyle Evans <kevans@FreeBSD.org> AuthorDate: 2024-01-18 02:33:24 +0000 Commit: Kyle Evans <kevans@FreeBSD.org> CommitDate: 2024-01-18 02:33:41 +0000 sysutils/orch: add a new port for program orchestration Inspired by expect(1) but with its own syntax, orch allows program orchestration via a pts(4) pseudo-terminal driven by similar write/match patterns as with it source of inspiration. This is still in relatively early development, but already it has a fair amount of useful features. Feedback is welcome, examples can be found both in the manpage as well as /usr/local/share/orch/examples. Other practical examples can be found at: https://git.kevans.dev/kevans/tty-tests --- sysutils/Makefile | 1 + sysutils/orch/Makefile | 37 +++++++++++++++++++++++++++++++++++++ sysutils/orch/distinfo | 3 +++ sysutils/orch/pkg-descr | 5 +++++ sysutils/orch/pkg-plist | 5 +++++ 5 files changed, 51 insertions(+) diff --git a/sysutils/Makefile b/sysutils/Makefile index 7c014e8bc4fc..0ce06a27edca 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -860,6 +860,7 @@ SUBDIR += openupsd SUBDIR += openzfs SUBDIR += openzfs-kmod + SUBDIR += orch SUBDIR += osinfo-db-tools SUBDIR += p5-App-Regather SUBDIR += p5-App-RunCron diff --git a/sysutils/orch/Makefile b/sysutils/orch/Makefile new file mode 100644 index 000000000000..34e68d19500b --- /dev/null +++ b/sysutils/orch/Makefile @@ -0,0 +1,37 @@ +PORTNAME= orch +PORTVERSION= 0.1 +CATEGORIES= sysutils +MASTER_SITES= https://git.kevans.dev/kevans/${PORTNAME}/archive/${PORTVERSION}.tar.gz?dummy=/ + +MAINTAINER= kevans@FreeBSD.org +COMMENT= Program orchestration tool scripted with lua +WWW= https://git.kevans.dev/kevans/orch + +LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= lua:52-54 uidfix + +WRKSRC= ${WRKDIR}/${PORTNAME} + +ORCHLUA_PATH= ${PREFIX}/share/${PORTNAME} + +MAKE_ENV+= BINDIR="${PREFIX}/bin" \ + EXAMPLESDIR="${ORCHLUA_PATH}/examples" \ + MANDIR="${PREFIX}/share/man/man" \ + LUA_INCDIR="${LUA_INCDIR}" \ + LUA_LIB="-L${LUA_LIBDIR} -llua-${LUA_VER}" \ + ORCHLUA_PATH="${ORCHLUA_PATH}" + +.include <bsd.port.pre.mk> + +# uidfix won't cover custom directories like this, so we'll hit it ourselves. +.if ${UID} != 0 +MAKE_ENV+= FILESDIR_OWN=${UID} FILESDIR_GRP=${GID} +MAKE_ENV+= EXAMPLESDIR_OWN=${UID} EXAMPLESDIR_GRP=${GID} +.endif + +pre-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/bin ${STAGEDIR}${PREFIX}/share/man/man1 + +.include <bsd.port.post.mk> diff --git a/sysutils/orch/distinfo b/sysutils/orch/distinfo new file mode 100644 index 000000000000..52af1438de94 --- /dev/null +++ b/sysutils/orch/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1705544817 +SHA256 (orch-0.1.tar.gz) = c4c058f73324f883c9b823639664a97380bd041dbc4dfd646be325a99305aa64 +SIZE (orch-0.1.tar.gz) = 20134 diff --git a/sysutils/orch/pkg-descr b/sysutils/orch/pkg-descr new file mode 100644 index 000000000000..19b23204df2e --- /dev/null +++ b/sysutils/orch/pkg-descr @@ -0,0 +1,5 @@ +Orch is a program orchestration tool, inspired by expect(1) but scripted with +lua. This utility allows scripted manipulation of programs for, e.g., testing +or automation purposes. Orch drives spawn processes over a pts(4) +pseudo-terminal, which allows for a broader range of interactions with a program +under orchestration. diff --git a/sysutils/orch/pkg-plist b/sysutils/orch/pkg-plist new file mode 100644 index 000000000000..6fda20d6d435 --- /dev/null +++ b/sysutils/orch/pkg-plist @@ -0,0 +1,5 @@ +bin/orch +share/orch/examples/cat.orch +share/orch/examples/nc.orch +share/orch/orch.lua +share/man/man1/orch.1.gz