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.
===> The following configuration options are available for orch-0.2:
EXAMPLES=on: Build and/or install examples
MANPAGES=on: Build and/or install manual pages
===> Use 'make config' to modify these settings
sysutils/orch: update to 0.4
Highlights:
- Many bug fixes
- Improved ipc interface for more robust program startup
- Cleaner lib interface to allow use in lua scripts
- Multi-match support within a single match()
- Terminal resize support
While we're here, orch has been renamed to porch upstream to deconflict
with a pre-existing rust framework. The scripts are still called
(orch)estration scripts.
This change also switches to the new `check-install` target to sanity
test our install layout.
sysutils/orch: update to v0.2
Highlights:
- Support for other platforms (Linux, macOS, NetBSD, OpenBSD)
- Functionality pushed into lua modules, orch(1) is now a light driver
on top of the library. The library's intended to be installed for
use by other Lua scripts if desired, and exports `env` and
`run_script(scriptfile, cfg)`.
- More bits imported into the .orch script environment
- stty() support to change some flags on the termios of the child
- Support for Lua 5.2 was dropped
The build system was rewritten in the interim to use cmake instead of
bmake directly, so uidfix and related hacks have now disappeared.
Makefile restructured slightly to appease portlint, and both EXAMPLES
and MANPAGES options added to be able to disable those.
sysutils/orch: pull in some patches following portability testing
These were deemed critcial enough to be worth backporting: the first
issue affects spawn() of paths that look relative; these are now just
using $PATH, and the script's directory is prepended to $PATH.
The other is that the tests weren't easily runnable, so it's gained some
bits to improve that and we hook up TEST_TARGET in the ports tree here.
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