I’ve been using a tool lately that provides good defaults for performing complex database operations, but found a few cases where we’d need to contribute upstream, fork the tool, or determine a generic way to extend it for our purposes.
There are a few ways to go here:
- Golang plugins (or hashicorp/go-plugin)
- Pre/post hooks for arbitrary shell scripts in the cli tool
- Extend the cli.
My choice has been to do 3 in cases of shared utility for other users, 2 in simple cases and 1 for complex interactions or complex data.