The Bash Tools Framework provides several command-line tools for linting, building, and managing bash projects.
This is the multi-page printable view of this section. Click here to print.
Commands
- 1: bash-compiler command
- 2: buildPushDockerImage command
- 3: doc command
- 4: findShebangFiles command
- 5: hugoUpdateLastmod command
- 6: installRequirements command
- 7: test.sh command
- 8: awkLint command
- 9: cspellForbidden command
- 10: definitionLint command
- 11: dockerLint command
- 12: frameworkLint command
- 13: megalinter command
- 14: shellcheckLint command
- 15: html2image command
- 16: krokiWrapper command
- 17: mermaid command
- 18: plantuml command
- 19: rimageWrapper command
1 - bash-compiler command
1. Usage
The framework works with bash-compiler, a GoLang implementation that generates standalone executables from YAML definitions.
Using bash-compiler binary:
export PATH=$PATH:/home/wsl/fchastanet/bash-compiler/bin
FRAMEWORK_ROOT_DIR=$(pwd) bash-compiler \
src/_binaries/shellcheckLint/shellcheckLint-binary.yaml
Using Go interpreter (must be executed from bash-compiler folder):
export FRAMEWORK_ROOT_DIR=/home/wsl/fchastanet/bash-dev-env/vendor/bash-tools-framework
go run ./cmd/bash-compiler "${FRAMEWORK_ROOT_DIR}/src/_binaries/shellcheckLint/shellcheckLint-binary.yaml"
Compile all *-binary.yaml files at once:
export FRAMEWORK_ROOT_DIR=/home/wsl/fchastanet/bash-dev-env/vendor/bash-tools-framework
go run ./cmd/bash-compiler $(find "${FRAMEWORK_ROOT_DIR}/src/_binaries" -name '*-binary.yaml' -print)
See Bash Compiler documentation for more information.
2. Example: Creating a Command
To create a new command using the framework:
- Create a YAML definition in
src/_binaries/myCommand/myCommand-binary.yaml - Define the command’s options and main script
- Compile using bash-compiler
- The generated binary will be placed in
bin/myCommand
See the framework command template for a starting point.
3. More info
2 - buildPushDockerImage command
1. Help
Command: bin/buildPushDockerImage --help
SYNOPSIS:
Lint bash files using shellcheck.
USAGE: buildPushDockerImage [OPTIONS]
USAGE: buildPushDockerImage [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q] [--push] [--vendor <vendor>] [--bash-version <bash-version>]
[--bash-base-image <bash-base-image>]
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/buildPushDockerImage.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
OPTIONS:
--push {single}
if provided, push the image to the registry
--vendor <vendor> {single}
vendor image to use
Possible values:
- alpine: alpine based docker image
- ubuntu: ubuntu based docker image
Default value: ubuntu
--bash-version <bash-version> {single}
version of bash to use
Possible values:
- 4.4
- 5.0
- 5.1
- 5.2
Default value: 5.2
--bash-base-image <bash-base-image> {single}
bash bash image to use (eg: ubuntu:20.04, amd64/bash:4.4-alpine3.18)
Default value: ubuntu:20.04
DESCRIPTION:
Pull, build and push docker image:
- pull previous docker image from docker hub if exists
- build new image using previous image as cache
- tag built image
- push it to docker registry
additional docker build options can be passed
via DOCKER_BUILD_OPTIONS env variable
INTERNAL
VERSION: 3.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/buildPushDockerImage/buildPushDockerImage-binary.yaml
LICENSE: MIT License
Copyright (c) 2023-now François Chastanet
3 - doc command
1. Help
Command: bin/doc --help
2. Usage
Generate markdown documentation for the framework from source code comments. This command:
- Extracts shdoc annotations from
.shfiles - Generates comprehensive documentation
- Creates function reference pages
SYNOPSIS:
Generate markdown documentation.
USAGE: doc [OPTIONS]
USAGE: doc [--ci] [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q]
OPTIONS:
--ci {single}
Activate continuous integration mode (tmp folder not shared with host)
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/doc.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
DESCRIPTION:
INTERNAL TOOL
VERSION: 3.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/doc/doc-binary.yaml
LICENSE: MIT License
Copyright (c) 2022-now François Chastanet
4 - findShebangFiles command
1. Help
Command: bin/findShebangFiles --help
Find files with shebang in a directory.
SYNOPSIS:
find all shebang files of this repository
USAGE: findShebangFiles [OPTIONS]
USAGE: findShebangFiles [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q]
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/findShebangFiles.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
DESCRIPTION:
Display list of all files having a bash shebang in the current repository.
You can apply a command to all these files by providing arguments
Example: Add execution bit to all files with a bash shebang
findShebangFiles chmod +x
VERSION: 3.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/findShebangFiles/findShebangFiles-binary.yaml
LICENSE: MIT License
Copyright (c) 2023-now François Chastanet
5 - hugoUpdateLastmod command
1. Help
Command: bin/hugoUpdateLastmod --help
SYNOPSIS:
Updates lastmod field in Hugo frontmatter
based on git modification date or current date.
USAGE: hugoUpdateLastmod [OPTIONS]
USAGE: hugoUpdateLastmod [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q] [--init] [--commit]
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/hugoUpdateLastmod.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
OPTIONS:
--init {single}
Run in migration mode to update all git-tracked markdown files
in content/ directory
Incompatible with the option --commit
Updates all git-tracked ".md" files in "content/" directory
- Migrates "creationDate" → "date"
- Migrates "lastUpdated" → "lastmod" - Removes old field names
- Adds "version: "1.0"" if version field doesn't exist
- Uses git history for dates if old fields don't exist
- Places "date", "lastmod", and "version" at the end of frontmatter
--commit {single}
Run in commit mode to update staged markdown files in git.
Automatically detects staged "content/**/*.md" files and updates
their frontmatter metadata.
Incompatible with the option --init
Updates specific files that are staged in git (for pre-commit hooks)
- Automatically detects staged "content/**/*.md" files
- Adds "date" if missing (current timestamp)
- Updates "lastmod" (current timestamp) with smart detection
to prevent unnecessary updates
- Increments "version" with smart detection
- Places "date", "lastmod", and "version" at the end of frontmatter
DESCRIPTION:
Update "date", "lastmod", and "version" frontmatter fields in
markdown files.
Integrates with pre-commit hooks to automatically manage Hugo
frontmatter metadata.
Two explicit modes:
1. Migration mode ("--init")
2. Commit mode ("--commit")
Smart update detection in commit mode (two complementary checks):
1. Date check: Skip if "lastmod" already has today's date
- Prevents repeated updates on multiple commits the same day
- Use case: You commit → stage changes → commit again → no update
2. Git check: Skip if file has no actual content changes
- Prevents updates when running "pre-commit run -a" on unchanged files
- Checks git diff to detect real changes vs. reformatting
CHANGELOG:
1.0: Initial version
1.1: make md files at content/ root directory to be updated as well
VERSION: 1.1
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/hugoUpdateLastmod/hugoUpdateLastmod-binary.yaml
LICENSE: MIT License
Copyright (c) 2026-now François Chastanet
2. Usage
Update lastmod field in Hugo frontmatter based on git modification dates or the current date. It can be run in two
modes: migration mode (using --init) to update all git-tracked markdown files in the content/ directory, and commit
mode (using --commit) to update only staged files. The hook includes smart update detection to prevent unnecessary
changes, making it ideal for use in pre-commit hooks to ensure that your Hugo content is always up-to-date with the
latest modification dates.
6 - installRequirements command
1. Help
Command: bin/installRequirements --help
2. Usage
bin/installRequirements script will install the following libraries inside vendor folder:
- bats-core/bats-core
- bats-core/bats-support
- bats-core/bats-assert
- Flamefire/bats-mock
- hadolint
- shellcheck
- shdoc
bin/doc script will install:
- reconquest/shdoc
- hadolint
- shellcheck
Dependencies are automatically installed when first used. To avoid checking for libraries update and have an impact on performance, a file is created in vendor dir.
vendor/.shdocInstalledvendor/.batsInstalled
You can remove these files to force the update of the libraries, or just wait 24 hours for the timeout to expire 😉
7 - test.sh command
1. Usage
Run unit tests using bats inside Docker container with needed dependencies.
# Run all tests on Ubuntu Bash 5.3
./test.sh scrasnups/build:bash-tools-ubuntu-5.3 -r src -j 30
# Run specific test file
./test.sh scrasnups/build:bash-tools-ubuntu-5.3 src/Array/contains.bats
# Run on different environments
./test.sh scrasnups/build:bash-tools-ubuntu-4.4 -r src -j 30
./test.sh scrasnups/build:bash-tools-ubuntu-5.0 -r src -j 30
./test.sh scrasnups/build:bash-tools-ubuntu-5.3 -r src -j 30
./test.sh scrasnups/build:bash-tools-alpine-4.4 -r src -j 30
./test.sh scrasnups/build:bash-tools-alpine-5.0 -r src -j 30
./test.sh scrasnups/build:bash-tools-alpine-5.3 -r src -j 30
8 - awkLint command
1. Help
Command: bin/awkLint --help
Lint all files with .awk extension in specified folder.
SYNOPSIS:
lint awk files
USAGE: awkLint [OPTIONS]
USAGE: awkLint [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q]
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/awkLint.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
DESCRIPTION:
Lint awk files
Lint all files with .awk extension in current git folder.
Result in checkstyle format.
VERSION: 3.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/awkLint/awkLint-binary.yaml
LICENSE: MIT License
Copyright (c) 2022-now François Chastanet
9 - cspellForbidden command
1. Help
Ensure .cspell/forbidden.txt exists and is used by cspell and launch cspell only on git files.
Command: bin/cspellForbidden --help
SYNOPSIS:
Lint all git (staged or not) files with cspell using the forbidden.txt file
USAGE: cspellForbidden [OPTIONS]
USAGE: cspellForbidden [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q]
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/cspellForbidden.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
DESCRIPTION:
Lint all git (staged or not) files with cspell using the forbidden.txt file
Ensure .cspell/forbidden.txt exists and is used by cspell
Ensure this dictionary is configured in cspell.json
VERSION: 1.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/cspellForbidden/cspellForbidden-binary.yaml
LICENSE: MIT License
Copyright (c) 2026-now François Chastanet
10 - definitionLint command
1. Help
Command: bin/definitionLint --help
Lint binary definition files (YAML).
SYNOPSIS:
Lint files of the given directory.
USAGE: definitionLint [OPTIONS] [ARGUMENTS]
USAGE: definitionLint [--format <format>] [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q]
ARGUMENTS:
folder {single} (mandatory) the folder to recursively lint
OPTIONS:
--format <format> {single}
Define output format of this command.
Possible values:
- plain
- checkstyle
Default value: plain
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/definitionLint.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
DESCRIPTION:
For each definition file:
- check that all mandatory methods are existing
installScripts_<fileName>_helpDescription
installScripts_<fileName>_helpVariables
installScripts_<fileName>_listVariables
installScripts_<fileName>_defaultVariables
installScripts_<fileName>_checkVariables
installScripts_<fileName>_fortunes
installScripts_<fileName>_dependencies
installScripts_<fileName>_breakOnConfigFailure
installScripts_<fileName>_breakOnTestFailure
installScripts_<fileName>_install
installScripts_<fileName>_configure
installScripts_<fileName>_test
- check if other definitions files functions are defined by currently
linted definition file it would mean that another file has defined
the same methods
- check if each dependency exists
INTERNAL
VERSION: 3.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/definitionLint/definitionLint-binary.yaml
LICENSE: MIT License
Copyright (c) 2023-now François Chastanet
11 - dockerLint command
1. Help
Command: bin/dockerLint --help
Hadolint wrapper with automatic installation of Hadolint.
SYNOPSIS:
Lint docker files of the given directory using hadolint.
USAGE: dockerLint [OPTIONS] [ARGUMENTS]
USAGE: dockerLint [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q]
ARGUMENTS:
[hadolintArguments {list} (optional)] hadolint arguments
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/dockerLint.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
DESCRIPTION:
- installs new hadolint version(>2.12.0) automatically
- lint this project files using default files filter
HADOLINT HELP:
hadolint - Dockerfile Linter written in Haskell
Usage: hadolint [-v|--version] [-c|--config FILENAME] [DOCKERFILE...]
[--file-path-in-report FILEPATHINREPORT] [--no-fail]
[--no-color] [-V|--verbose] [-f|--format ARG] [--error RULECODE]
[--warning RULECODE] [--info RULECODE] [--style RULECODE]
[--ignore RULECODE]
[--trusted-registry REGISTRY (e.g. docker.io)]
[--require-label LABELSCHEMA (e.g. maintainer:text)]
[--strict-labels] [--disable-ignore-pragma]
[-t|--failure-threshold THRESHOLD]
Lint Dockerfile for errors and best practices
Available options:
-h,--help Show this help text
-v,--version Show version
-c,--config FILENAME Path to the configuration file
--file-path-in-report FILEPATHINREPORT
The file path referenced in the generated report.
This only applies for the 'checkstyle' format and is
useful when running Hadolint with Docker to set the
correct file path.
--no-fail Don't exit with a failure status code when any rule
is violated
--no-color Don't colorize output
-V,--verbose Enables verbose logging of hadolint's output to
stderr
-f,--format ARG The output format for the results [tty | json |
checkstyle | codeclimate | gitlab_codeclimate | gnu |
codacy | sonarqube | sarif] (default: tty)
--error RULECODE Make the rule `RULECODE` have the level `error`
--warning RULECODE Make the rule `RULECODE` have the level `warning`
--info RULECODE Make the rule `RULECODE` have the level `info`
--style RULECODE Make the rule `RULECODE` have the level `style`
--ignore RULECODE A rule to ignore. If present, the ignore list in the
config file is ignored
--trusted-registry REGISTRY (e.g. docker.io)
A docker registry to allow to appear in FROM
instructions
--require-label LABELSCHEMA (e.g. maintainer:text)
The option --require-label=label:format makes
Hadolint check that the label `label` conforms to
format requirement `format`
--strict-labels Do not permit labels other than specified in
`label-schema`
--disable-ignore-pragma Disable inline ignore pragmas `# hadolint
ignore=DLxxxx`
-t,--failure-threshold THRESHOLD
Exit with failure code only when rules with a
severity equal to or above THRESHOLD are violated.
Accepted values: [error | warning | info | style |
ignore | none] (default: info)
VERSION: 3.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/dockerLint/dockerLint-binary.yaml
LICENSE: MIT License
Copyright (c) 2022-now François Chastanet
12 - frameworkLint command
1. Help
Command: bin/frameworkLint --help
SYNOPSIS:
Lint files of the current repository to ensure framework conventions
are followed.
USAGE: frameworkLint [OPTIONS]
USAGE: frameworkLint [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q] [--format <format>]
[--expected-warnings-count <expected-warnings-count>]
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/frameworkLint.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
OPTIONS:
--format <format> {single}
Define output format of this command.
Possible values:
- plain
- checkstyle
Default value: plain
--expected-warnings-count <expected-warnings-count> {single}
Specify expected warning count (default: 0)
DESCRIPTION:
Lint files of the current repository
- check if all Namespace::functions are existing in the framework
- check that function defined in a .sh is correctly named
- check each function has a bats file associated
- shdoc - check that shdoc valid annotations are used
- check that @require function matches naming convention and exists
- check that at least @description is provided
VERSION: 3.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/frameworkLint/frameworkLint-binary.yaml
LICENSE: MIT License
Copyright (c) 2023-now François Chastanet
2. Usage
Lint files of the current repository to ensure framework conventions are followed.
This linter is used in pre-commit hooks. See .pre-commit-config.yaml.
13 - megalinter command
1. Help
Command: bin/megalinter --help
Run MegaLinter for comprehensive code quality checks.
SYNOPSIS:
Run megalinter over this repository.
USAGE: megalinter [OPTIONS]
USAGE: megalinter [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q] [--format <<Format>>] [--fix] [--filesOnly] [--incremental|-i]
[--image <<ImageName>>] [--config-file <<ConfigFile>>]
[--check-megalinter-version]
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/megalinter.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
OPTIONS:
--format <<Format>> {single}
Define output format of this command.
Possible values:
- plain
- json
Default value: plain
--fix {single}
Apply linters fixes automatically.
--filesOnly {single}
Skip linters that run in project mode.
--incremental, -i {single}
Run megalinter only on files that are git staged.
--image <<ImageName>> {single}
Specify docker megalinter image name to use.
Default value: oxsecurity/megalinter-terraform:v9
--config-file <<ConfigFile>> {single}
Specify megalinter config filename to use.
Default value: .mega-linter.yml
--check-megalinter-version {single}
Check if new version of megalinter is available (compared to default ima
ge). Exits 1 if yes and displays new version number.
DESCRIPTION:
megalinter image will be used.
<files> optionally you can provide a list of files to run megalinter on
this mode is incompatible with --incremental option.
VERSION: 3.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/megalinter/megalinter-binary.yaml
LICENSE: MIT License
Copyright (c) 2023-now François Chastanet
14 - shellcheckLint command
1. Help
Command: bin/shellcheckLint --help
ShellCheck wrapper with automatic installation of ShellCheck.
SYNOPSIS:
Lint bash files using shellcheck.
USAGE: shellcheckLint [OPTIONS] [ARGUMENTS]
USAGE: shellcheckLint [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q] [--format|-f <format>] [--staged] [--xargs]
ARGUMENTS:
[shellcheckFiles {list} (optional)] files to validate with shellcheck.
If not provided, all files from git repository which are beginning
with a bash shebang, unless --staged option is provided.
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/shellcheckLint.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
SPECIFIC OPTIONS:
--format, -f <format> {single}
define output format of this command
Possible values:
- checkstyle
- diff
- gcc
- json
- json1
- quiet
- tty
Default value: tty
--staged {single}
lint only staged git files(files added to file list to be committed)
and which are beginning with a bash shebang.
--xargs {single}
uses parallelization(using xargs command) only if tty format
DESCRIPTION:
shellcheck wrapper that will:
- install new shellcheck version(0.9.0) automatically
- by default, lint all git files of this project
which are beginning with a bash shebang
except if the option --staged is passed
Special configuration .shellcheckrc:
use the following line in your .shellcheckrc file to exclude
some files from being checked (use grep -E syntax) exclude=^bin/compile$
SHELLCHECK HELP
Usage: shellcheck [OPTIONS...] FILES...
-a --check-sourced Include warnings from sourced files
-C[WHEN] --color[=WHEN] Use color (auto, always, never)
-i CODE1,CODE2.. --include=CODE1,CODE2.. Consider only given types of warnings
-e CODE1,CODE2.. --exclude=CODE1,CODE2.. Exclude types of warnings
--extended-analysis=bool Perform dataflow analysis (default true)
-f FORMAT --format=FORMAT Output format (checkstyle, diff, gcc, json, json1, quiet, tty)
--list-optional List checks disabled by default
--norc Don't look for .shellcheckrc files
--rcfile=RCFILE Prefer the specified configuration file over searching for one
-o check1,check2.. --enable=check1,check2.. List of optional checks to enable (or 'all')
-P SOURCEPATHS --source-path=SOURCEPATHS Specify path when looking for sourced files ("SCRIPTDIR" for script's dir)
-s SHELLNAME --shell=SHELLNAME Specify dialect (sh, bash, dash, ksh, busybox)
-S SEVERITY --severity=SEVERITY Minimum severity of errors to consider (error, warning, info, style)
-V --version Print version information
-W NUM --wiki-link-count=NUM The number of wiki links to show, when applicable
-x --external-sources Allow 'source' outside of FILES
--help Show this usage summary and exit
VERSION: 3.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/shellcheckLint/shellcheckLint-binary.yaml
LICENSE: MIT License
Copyright (c) 2022-now François Chastanet
15 - html2image command
1. Help
Command: bin/html2image --help
Generate images from HTML files using Puppeteer.
SYNOPSIS:
Converts HTML files to images using Puppeteer.
USAGE: html2image [OPTIONS] [ARGUMENTS]
USAGE: html2image [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q] [--ci] [--format|-f <Format>] [--same-dir]
[--output-dir|-d <OutputDir>] [--output|-o <OutputFile>]
[--transform-cmd|-t <TransformCmd>] [--viewport <Viewport>]
[--quality <Quality>] [--full-page] [--wait-for-render <Milliseconds>]
[--wait-for-selector <Selector>] [--inject-css <CssFile>]
[--hide-selector <Selector>] [--file-filter <Regex>]
ARGUMENTS:
[HTMLFiles {list} (optional)]
HTML files to convert.
NO FILES:
If not provided, all HTML files from git repository will be converted.
STDIN:
If '-' is provided, HTML content will be read from stdin.
Incompatible with --output unless stdin is used.
If using stdin, the option --output
is required to specify the output file path.
If using stdin, the option --same-dir and --output-dir cannot be used.
If using stdin, the option --transform-cmd
can be used to apply a transform command to the HTML content before
conversion (the HTML content will be passed to the transform command
via stdin).
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/html2image.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
OPTIONS:
--ci {single}
Activate continuous integration mode (tmp folder not shared with host)
--format, -f <Format> {list} (optional)
Output image format (default: webp if not provided)
Possible values:
- png: PNG raster format
- jpg: JPEG raster format
- jpeg: JPEG raster format (alias)
- webp: WebP format (recommended)
--same-dir {single}
Write output file in same directory as source file
with the same base name (except extension).
Incompatible with --output-dir and --output.
--output-dir, -d <OutputDir> {single}
Output directory for generated images (default: doc/images).
Incompatible with --same-dir and --output.
--output, -o <OutputFile> {single}
Output file path. Required when using stdin input.
Incompatible with --same-dir and --output-dir.
--transform-cmd, -t <TransformCmd> {single}
Transform command to apply before generating image.
Use %tempFile% placeholder for temporary HTML output file.
Example: 'npx -y @markwhen/mw -o timeline -d %tempFile%'
--viewport <Viewport> {single}
Browser viewport size in WIDTHxHEIGHT format (e.g., 1920x1080). If not s
pecified, the viewport is automatically sized to fit the page content.
--quality <Quality> {single}
Image quality for JPEG/WEBP formats, 0-100 (default: 90).
Default value: 90
--full-page {single}
Capture full scrollable page height instead of viewport height.
--wait-for-render <Milliseconds> {single}
Extra wait time in milliseconds after page load, for JS-rendered
content such as SPAs or web components (default: 0).
Example: --wait-for-render 2000
Default value: 0
--wait-for-selector <Selector> {single}
CSS selector to wait for before taking the screenshot.
Useful when the target element is rendered asynchronously.
Example: --wait-for-selector '#app'
--inject-css <CssFile> {single}
Path to a CSS file to inject into the page before screenshot.
Useful to override styles, hide elements, or apply custom theme.
Example: --inject-css custom.css
--hide-selector <Selector> {single}
CSS selector: the last matching element will be hidden before screenshot.
Useful to remove floating toolbars or overlays from the captured image.
Example: --hide-selector '#timeline > div.fixed'
--file-filter <Regex> {single}
Only process files matching the regular expression
Example: --file-filter '(\.html|\.htm)$'
Default value: (\.html|\.htm)$
DESCRIPTION:
Converts HTML files to images (PNG, JPEG, WEBP) using Puppeteer. Supports tr
ansform commands to generate HTML from other formats (e.g., Markwhen).
Can process files from git repository, specified files, or stdin.
USAGE EXAMPLES:
# Convert HTML files from git repository
html2image --format webp --same-dir
# Convert specific HTML file
html2image --format webp --same-dir file.html
# Convert Markwhen file with transform
html2image --format webp --same-dir \
--transform-cmd 'npx -y @markwhen/mw -o timeline -d %tempFile%' \
file.mwh
# Convert from stdin
echo "<html><body>Hello</body></html>" | \
html2image --format png --output output.png
# Convert with custom css injection
html2image --format webp --same-dir \
--transform-cmd 'npx -y @markwhen/mw -o timeline -d %tempFile%' \
--inject-css src/_binaries/html2image/tests/test-markwhen.css \
src/_binaries/html2image/tests/test-markwhen.mwh
CHANGELOG:
Version 1.0.1 (2026-05-16):
- Fix: handle same-directory output with stdin input correctly
Version 1.0 (2026-04-24):
- Initial version - Support for PNG, JPEG, WEBP formats
- Transform command support with %tempFile% placeholder
- Stdin input support - Configurable viewport size
- CI mode with extension checking
VERSION: 1.0.1
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/html2image/html2image-binary.yaml
LICENSE: MIT License
Copyright (c) 2026-now François Chastanet
16 - krokiWrapper command
1. Help
Command: bin/krokiWrapper --help
Convert diagram files to images using Kroki CLI. Supports multiple diagram formats including PlantUML, Mermaid, Graphviz, and many more.
SYNOPSIS:
Convert diagrams to images using Kroki CLI or run Kroki server.
https://docs.kroki.io/kroki/setup/kroki-cli/
USAGE: krokiWrapper [OPTIONS]
USAGE: krokiWrapper [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q] [--ci] [--same-dir] [--output-dir <OutputDir>]
[--format <Format>] [--force-update] [--server <Action>]
[--server-port <Port>]
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /home/wsl/fchastanet/bash-dev-env/vendor/bash-tools-frame
work/logs/krokiWrapper.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
OPTIONS:
--ci {single}
Activate continuous integration mode (tmp folder not shared with host)
--same-dir {single}
Write output file in same directory as source file
and with the same base name (except extension)
Incompatible with the option --output-dir
--output-dir <OutputDir> {single}
Define output directory of this command (default: <currentDirectory>)
Incompatible with the option --same-dir
--format <Format> {single}
Output format for wrapper mode: svg, png, pdf (default: svg)
Note: When using 'convert' subcommand, use kroki's native -f flag
Possible values:
- svg: SVG vector format (recommended for web)
- png: PNG raster format
- pdf: PDF document format
--force-update {single}
Force download of kroki binary even if already cached
SERVER OPTIONS:
--server <Action> {single}
Server management action: start, stop, status
Possible values:
- start: Start Kroki server using Docker Compose
- stop: Stop Kroki server containers
- status: Show Kroki server status
--server-port <Port> {single}
Port for Kroki server (default: 8000)
DESCRIPTION:
Convert diagrams to images using Kroki CLI or run a local Kroki server.
https://docs.kroki.io/kroki/setup/kroki-cli/
Kroki CLI allows you to convert various diagram formats (PlantUML, Mermaid,
Graphviz, BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag, Bytefie
ld, Ditaa, Erd, GraphViz, Nomnoml, Pikchr, Structurizr, SvgBob, UMLet, Vega,
Vegalite, WaveDrom, Excalidraw, and more) to images (SVG, PNG, PDF, etc.).
KROKI HELP
Convert text diagram to image.
By default, the output is written to a file with the basename of the source file and the appropriate extension.
Example: kroki convert hello.dot
Usage:
kroki [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
convert Convert text diagram to image
decode Decode an encoded (deflate + base64) diagram
encode Encode text diagram in deflate + base64 format
help Help about any command
version Print the version of kroki
Flags:
-h, --help help for kroki
Use "kroki [command] --help" for more information about a command.
SERVER MODE
Use --server to manage a local Kroki server using Docker:
--server start [--server-port 8000]
Start Kroki server with all companion services
--server stop
Stop Kroki server and remove containers
--server status
Show server status and URL
The server includes: Gateway, Mermaid, BPMN, and Excalidraw services.
VERSION: 1.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/krokiWrapper/krokiWrapper-binary.yaml
LICENSE: MIT License
Copyright (c) 2026-now François Chastanet
17 - mermaid command
1. Help
Command: bin/mermaid --help
Generate Mermaid diagrams.
SYNOPSIS:
Generates mermaid diagrams from mermaid files.
USAGE: mermaid [OPTIONS]
USAGE: mermaid [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q] [--ci] [--format|-f <Format>] [--same-dir]
[--output-dir|-o <OutputDir>]
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /home/wsl/fchastanet/bash-dev-env/vendor/bash-tools-frame
work/logs/mermaid.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
OPTIONS:
--ci {single}
Activate continuous integration mode (tmp folder not shared with host)
--format, -f <Format> {list} (optional)
Defines output format of this command (default: svg if not provided)
Possible values:
- svg
- png
- pdf
--same-dir {single}
Write output file in same directory as source file
and with the same base name (except extension)
Incompatible with the option --output-dir
--output-dir, -o <OutputDir> {single}
Define output directory of this command (default: <currentDirectory>)
Incompatible with the option --same-dir
DESCRIPTION:
Generates mermaid diagrams from mermaid files in formats provided
MERMAID HELP
Usage: mmdc [options]
Options:
-V, --version output the version number
-t, --theme [theme] Theme of the chart (choices: "default", "forest", "dark", "neutral", default: "default")
-w, --width [width] Width of the page (default: 800)
-H, --height [height] Height of the page (default: 600)
-i, --input <input> Input mermaid file. Files ending in .md will be treated as Markdown and all charts (e.g. ```mermaid (...)``` or :::mermaid (...):::) will be extracted and generated. Use `-` to read from stdin.
-o, --output [output] Output file. It should be either md, svg, png, pdf or use `-` to output to stdout. Optional. Default: input + ".svg"
-a, --artefacts [artefacts] Output artefacts path. Only used with Markdown input file. Optional. Default: output directory
-j, --jobs <jobs> Number of parallel jobs to run when rendering multiple diagrams. Defaults to half the available CPUs. (default: 6)
-e, --outputFormat [format] Output format for the generated image. (choices: "svg", "png", "pdf", default: Loaded from the output file extension)
-b, --backgroundColor [backgroundColor] Background color for pngs/svgs (not pdfs). Example: transparent, red, '#F0F0F0'. (default: "white")
-c, --configFile [configFile] JSON configuration file for mermaid.
-C, --cssFile [cssFile] CSS file for the page.
-I, --svgId [svgId] The id attribute for the SVG element to be rendered.
-s, --scale [scale] Puppeteer scale factor (default: 1)
-f, --pdfFit Scale PDF to fit chart
-q, --quiet Suppress log output
-p --puppeteerConfigFile [puppeteerConfigFile] JSON configuration file for puppeteer.
--iconPacks <icons...> Icon packs to use, e.g. @iconify-json/logos. These should be Iconify NPM packages that expose a icons.json file, see https://iconify.design/docs/icons/json.html. These will be downloaded from https://unkpg.com when needed. (default: [])
--iconPacksNamesAndUrls <prefix#iconsurl...> Icon packs to use, e.g. azure#https://raw.githubusercontent.com/NakayamaKento/AzureIcons/refs/heads/main/icons.json where the name (prefix) of the icon pack is defined before the "#" and the url of the json definition after the "#". These should be Iconify json file formatted as IconifyJson, see https://iconify.design/docs/icons/json.html. These will be downloaded when needed. (default: [])
-h, --help display help for command
VERSION: 1.1
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/mermaid/mermaid-binary.yaml
LICENSE: MIT License
Copyright (c) 2026-now François Chastanet
18 - plantuml command
1. Help
Command: bin/plantuml --help
Generate PlantUML diagrams using PlantUML. Supports various output formats including PNG, SVG.
SYNOPSIS:
Generates plantuml diagrams from puml files.
USAGE: plantuml [OPTIONS] [ARGUMENTS]
USAGE: plantuml [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q] [--ci] [--format|-f <Format>] [--limit-size|-l <LimitSize>]
[--same-dir] [--output-dir|-o <OutputDir>] [--include-paths <IncludePaths>]
[--elk]
ARGUMENTS:
[PlantumlFiles {list} (optional)] Plantuml files (if not provided, deduce files
from git repository with .puml extension)
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /bash/logs/plantuml.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
OPTIONS:
--ci {single}
Activate continuous integration mode (tmp folder not shared with host)
--format, -f <Format> {list} (optional)
Defines output format of this command
Possible values:
- svg
- png
--limit-size, -l <LimitSize> {single}
Define PLANTUML_LIMIT_SIZE
use plantuml software default size if not provided
Default value: 0
--same-dir {single}
Write image file in same directory as source file
and with the same base name (except extension)
Incompatible with the option --output-dir
--output-dir, -o <OutputDir> {single}
Define output directory of this command (default: <currentDirectory>)
Incompatible with the option --same-dir
--include-paths <IncludePaths> {single}
Comma-separated list of paths to make shared inside docker container
so that !include directives in plantuml files can work
relative to these paths.
Example: --include-paths "dir1,dir2,dir3"
Each path will be validated for existence and mounted separately.
If not provided, the current directory will be used as include path.
--elk {single}
Enable ELK (Eclipse Layout Kernel) support by downloading and
mounting elk-full.jar. The jar is downloaded from
http://beta.plantuml.net/elk-full.jar and cached in /tmp/bash-framework/
bash-framework-1-1qqMcp/bash-framework/elk-full.jar. It will be re-downl
oaded if older than 1 month.
DESCRIPTION:
Generates plantuml diagrams from puml files in formats provided
CHANGELOG
Version 3.3 (2026-04-09):
- Fail if syntax error in plantuml file
- restored metadata so files are not regenerated if plantuml
file is not changed
PLANTUML HELP
docker was not available while generating this documentation
VERSION: 3.3
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/plantuml/plantuml-binary.yaml
LICENSE: MIT License
Copyright (c) 2023-now François Chastanet
19 - rimageWrapper command
1. Help
Command: bin/rimageWrapper --help
Reduce image size from source image files using the rimage tool.
SYNOPSIS:
Compression and conversion of images using Rimage.
https://github.com/vlad-salone/rimage
USAGE: rimageWrapper [OPTIONS] [ARGUMENTS]
USAGE: rimageWrapper [--help|-h] [--config]
[--bash-framework-config <bash-framework-config>] [--verbose|-v] [-vv] [-vvv]
[--log-level <log-level>] [--log-file <log-file>]
[--display-level <display-level>] [--no-color] [--theme <theme>] [--version]
[--quiet|-q] [--ci] [--same-dir] [--output-dir|-o <OutputDir>]
ARGUMENTS:
command {single} (mandatory) command to run with rimageWrapper, e.g. mozjpeg, oxipng, etc.
Possible values:
- avif: Encode images into AVIF format. (Small and Efficient)
- farbfeld: Encode images into Farbfeld format. (Bitmapped)
- jpeg: Encode images into JPEG format. (Progressive-able)
- jpeg_xl: Encode images into JpegXL format. (Big but Lossless)
- mozjpeg: Encode images into JPEG format using MozJpeg codec.
(RECOMMENDED and Small)
- oxipng: Encode images into PNG format using OxiPNG codec.
(Progressive-able)
- png: Encode images into PNG format.
- ppm: Encode images into PPM format. (Bitmapped)
- qoi: Encode images into QOI format. (Trendy and Small)
- webp: Encode images into WebP format. (Lossless-able)
- help: Print this message or the help of the given subcommand(s)
GLOBAL OPTIONS:
--help, -h {single}
Displays this command help
--config {single}
Displays configuration
--bash-framework-config <bash-framework-config> {single}
Use alternate bash framework configuration.
--verbose, -v {single}
Info level verbose mode (alias of --display-level INFO)
-vv {single}
Debug level verbose mode (alias of --display-level DEBUG)
-vvv {single}
Trace level verbose mode (alias of --display-level TRACE)
--log-level <log-level> {single}
Set log level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: OFF
--log-file <log-file> {single}
Set log file
Default value: /home/wsl/fchastanet/bash-dev-env/vendor/bash-tools-frame
work/logs/rimageWrapper.log
--display-level <display-level> {single}
Set display level
Possible values:
- OFF
- ERR
- ERROR
- WARN
- WARNING
- INFO
- DEBUG
- TRACE
Default value: INFO
--no-color {single}
Produce monochrome output. alias of --theme noColor.
--theme <theme> {single}
Choose color theme - default-force means colors will be produced even if
command is piped.
Possible values:
- default
- default-force
- noColor
Default value: default
--version {single}
Print version information and quit.
--quiet, -q {single}
Quiet mode, doesn't display any output.
OPTIONS:
--ci {single}
Activate continuous integration mode (tmp folder not shared with host)
--same-dir {single}
Write output file in same directory as source file
and with the same base name (except extension)
Incompatible with the option --output-dir
--output-dir, -o <OutputDir> {single}
Define output directory of this command (default: <currentDirectory>)
Incompatible with the option --same-dir
DESCRIPTION:
Compression and conversion of images using Rimage.
https://github.com/vlad-salone/rimageWrapper
RIMAGE HELP
Optimize images natively with best-in-class codecs
Usage: rimage [COMMAND]
Commands:
avif Encode images into AVIF format. (Small and Efficient)
farbfeld Encode images into Farbfeld format. (Bitmapped)
jpeg Encode images into JPEG format. (Progressive-able)
jpeg_xl Encode images into JpegXL format. (Big but Lossless)
mozjpeg Encode images into JPEG format using MozJpeg codec. (RECOMMENDED and Small)
oxipng Encode images into PNG format using OxiPNG codec. (Progressive-able)
png Encode images into PNG format.
ppm Encode images into PPM format. (Bitmapped)
qoi Encode images into QOI format. (Trendy and Small)
webp Encode images into WebP format. (Lossless-able)
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
List of supported codecs
| Image Format | Input | Output | Note |
| ------------- | ----- | ------ | --------------- |
| avif | O | O | Static only |
| bmp | O | X | |
| farbfeld | O | O | |
| hdr | O | O | |
| jpeg | O | O | |
| jpeg_xl(jxl) | O | O | |
| mozjpeg(moz) | O | O | |
| oxipng(oxi) | O | O | Static only |
| png | O | O | Static only |
| ppm | O | O | |
| psd | O | X | |
| qoi | O | O | |
| tiff | O | X | |
| webp | O | O | Static only |
List of supported preprocessing options
- Resize
- Quantization
- Alpha premultiply
List of supported mode for output info presenting
- No-progress (Shown on Default)
- Quiet (Show all msgs on Default)
For more info use rimageWrapper help <command>
E.g.: rimageWrapper help mozjpeg
RIMAGE ADVANCED OPTIONS
Options: --quality <NUM> Quality, values 60-80 are recommended.
[default: 75]
--chroma_quality <NUM> Separate chrome quality.
--baseline Set to use baseline encoding (by default is progressive).
--no_optimize_coding Set to make files larger for no reason.
--smoothing <NUM> Use MozJPEG's smoothing.
--colorspace <COLOR> Set color space of JPEG being written.
[default: ycbcr] [possible values: ycbcr, grayscale, rgb]
--multipass Specifies whether multiple scans should be considered during
trellis quantization.
--subsample <PIX> Sets chroma subsampling.
--qtable <TABLE> Use a specific quantization table.
[default: NRobidoux]
[possible values: AhumadaWatsonPeterson, AnnexK, Flat,
KleinSilversteinCarney, MSSSIM, NRobidoux,
PSNRHVS, PetersonAhumadaWatson, WatsonTaylorBorthwick]
VERSION: 1.0
AUTHOR: [François Chastanet](https://github.com/fchastanet)
SOURCE FILE: https://github.com/fchastanet/bash-tools-framework/tree/master/src/_binaries/rimageWrapper/rimageWrapper-binary.yaml
LICENSE: MIT License
Copyright (c) 2026-now François Chastanet