Package Exports
- mxflow
- mxflow/bin/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (mxflow) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Why |
Config |
Installation |
Usage |
Options
⚡ A Friendly, General purpose CLI task runner
mxflow
is a CLI task runner which is defined by a YAML config file. It searches for a .mxflow/config.yml
in the current directory and parent directories recursively up which it then parses for commands and arguments
Why?
Internal processes can get complicated or too repetitive.
It's hard to streamline complex workflows across teams.
Existing task-runners are too focused on a specific use case / environment or have complicated config files or are just not friendly.
Major features
- Interactive first - works with/without arguments; prompt missing args
- Extensive config - group commands under a workflow, use arguments export value in commands
- Shell completion - dynamic shell completion based on the closest config file
- Confirmation - add
confirm
prefix to any step command to add confirmation - Project / System config - searches for a
.mxflow/config.yml
in the current directory and parent directories recursively up
Config
.mxflow/config.yml
mxflow trigger foobar --foo fval --bar 222
version: 0.60.0
exit_on_error: true # default is false
workflows:
foobar:
description: example placeholder
args:
- name: foo
type: string
default: fdef
export: foox
- name: bar
type: number
default: 123
export: barx
- name: MXF_BUG_TRACKER_NAME
type: env
default: jira
export: bugTrackerName
steps:
- echo {foox} world
- echo goodbye {barx} cruel world
- confirm echo {bugTrackerName} goodbye
Config reference
version
- config version
exit_on_error
- should exit on any command with non-zero exit code, default is false
sleep
- adds a delay between each command, default is 1000
workflows
- object with workflows
Workflow reference
description
- workflow description
args
- list of arguments
args[*].name
- what user inputs as argument
args[*].type
- validation type; string | number | env
args[*].export
- (optional) the exported variable, default is name
args[*].default
- (optional) the default value, if any
steps
- list of commands to run
steps[*]
- the command to run
Real-world Use case: git-workflow
Requirements
- Node 16.x
Installation
npm i -g mxflow
mxflow --setup-completion
or
npx mxflow
Usage
mxflow <action> [<args>]
Options
init | init sample configuration
trigger <workflow-name> | non-interactive workflow trigger
version | show version
help | help menu
-v, --verbose | verbose logs
-F, --force | force bypass confirmation prompts
--no-catch-git | bypass initial git checks
--setup-completion | setup shell tab completion
--clean-completion | cleanup tab completion
Example
mxflow # or mxf
mxflow trigger foobar --verbose
mxflow trigger feature --taskId xorg --description zelda
mxflow --no-catch-git # to bypass initial git checks
Roadmap
- project based config file
- plugin system for dynamic lists
- aurgument mode
- argument autocomplete
⚠️ MXFlow is in an early state of release. Breaking changes may be made to APIs/core structures as the tool matures.