kombinator

Kombinator is a tool to generate commands line from parameters combination from a config file.

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:25

Installation

nimble install kombinator
choosenim install kombinator
git clone https://gitlab.com/EchoPouet/kombinator.git

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
kombinator - - - - - - -

Source

Repository https://gitlab.com/EchoPouet/kombinator.git
Homepage https://gitlab.com/EchoPouet/kombinator.git
Registry Source nimble_official

README

Kombinator

Application to run a command line with lot of combinations of values.

Kombinator parse a configuration file in TOML format and generate as soon as possible combinations of values. This combinations are used to call a command line and create a CSV report. Command outputs are kept and written in a log file.

Installation

From Nim pakage manager Nimble

nimble install kombinator

Executables

Windows and Linux executable

Contributions are welcome.

"Buy Me A Coffee"

Configuration file

First, the mandatory key in the TOML configuration file is cmd to write the command line in string type.

cmd = "ffmpeg -i ../ForBiggerFun.mp4 -s $heightx$width -c:v $codec -ab $audio_bitrate output-$audio_bitrate-$heightx$width-$codec.mp4"

Text prefixed with $ are the parameters that will be replaced when calling the command. To defined a parameter with its all possible values, you would add it in the config file like following:

height = [640, 800]

Possible values are: * Float * Boolean * Integer * String

Also, you can define a range of values for Integer and Float like follow:

audio_bitrate = {min = 128, max = 192, step = 32}

min and max keys are mandatory but not step which will have the default value of 1.

See a complete example file tests/ffmpeg_conf.toml.

Sometime an executable needs a file with some parameters. To modify a file, you must define it like follow:

cfg = {file = "$here/../ref_file.cfg"}

The key file is mandatory to indicate that it is a file to modify. During execution, Kombinator will create a new file from referenced with all parameters modified like the command line. For example, if $height exists it will be replaced. To pass this new file to the command line, you must add the key with the prefix $file with the previous example.

Reserved key

$here is a reserved key that will be replaced by the parent folder of the configuration file.

Usage

To run the program, write following command:

kombinator -c your_conf.toml

During execution, Kombinator compute all combinations and ask you if you want run the command with them.

Result file

A folder is created during execution with a name like 2021-08-12_22h-09m_output and it contains a CSV file named kombi_result.csv and subdirectories with log for each commands.