A tool which repeats a command n amounts of time, with paralellisation and slight tweaks.
Test coverage: 59.480% 😌👏
go install github.com/baalimago/repeater@latestYou may also use the setup script:
curl -fsSL https://raw.githubusercontent.com/baalimago/repeater/main/setup.sh | shUsecases:
- CRUD state using curl as fast as you have network sockets
- Paralellize repetitive shell-scripts
- Ghetto benchmarking
repeater \
-n 100 `# 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 ./run_output ` # with FILE ./run_output` \
-result ./run_result ` # 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 -hrepeater 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.
