xargs, but different..! Better at some things (repeating stuff), worse at others (not repeating stuff).
repeater
A tool which repeats a command n amounts of time, with paralellisation and slight tweaks.
Test coverage: 53.700% ๐๐

Installation
go install github.com/baalimago/repeater@latest
You may also use the setup script:
curl -fsSL https://raw.githubusercontent.com/baalimago/repeater/main/setup.sh | sh
Usage
Usecases:
- CRUD state using curl as fast as you have network sockets
- Paralellize repetitive shell-scripts
- Ghetto benchmarking
repeater \ -n 100\ -result ./run_result# repeat 100 times\ -w 10# using 10 workers\ -output FILE# with command output written to FILE\ -progress BOTH# with progress written to BOTH STDOUT and FILE\ -file ./runoutput# with FILE ./runoutput# with result (output + time taken) for each command\ curl example.com# command to repeat
# This will print "this is increment: 1\nthis is increment: 2\n..."
repeater -n 100 -output STDOUT -progress HIDDEN -increment echo "this is increment: INC"
Show all available flags
repeater -h
Benchmarks
repeater outperforms many other parallizers, including GNU parallel and xargs.
Run ./benchmark.sh to try out repeaters performance vs similar parallelization tools. You may benchmark any command that you want, simply run ./benchmark.sh <MAX RUNS> <YOUR COMMAND>. It will run the command with repeater, parallel and xargs and print the time taken for each by starting to repeat the command 10 times then 100, 1000, etc up until <MAX_RUNS>. Note that ./benchmark.sh will break if it detects and diffs in the output of the commands, so ensure the commands output is deterministic.