A way to structure your application modules.
There's a command line tool for running simple command modules (framework.CommandModule).
Install:
go install github.com/roboslone/go-framework/cmd/fexec@latestOr use as devcontainers feature:
{
	"features": {
		"ghcr.io/roboslone/go-framework/fexec:1": {}
	}
}Example config: .fexec.yaml
Run:
fexec --help
# Usage of fexec:
#   -c string
#         Path to config file (default ".fexec.yaml")
# 
# Available modules:
#         ci
#                 depends on lint, test
#         install
#                 $ go get
#         lint
#                 $ golangci-lint run --no-config .
#                 depends on install
#         test
#                 $ go test ./...
#                 depends on install
#         pre-commit
#                 depends on lint, testAvailable interfaces can be found in module.go:
Dependent
Preparable[State any]
Startable[State any]
Awaitable[State any]
Cleanable[State any]