Skip to content

baalimago/repeater

Repository files navigation

repeater

A tool which repeats a command n amounts of time, with paralellisation and slight tweaks.

Test coverage: 60.880% 😌👏

repeatoopher

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

Since v1.2.1, repeater will re-attempt the command until successful. A success is a command returning exit code 0. Set flag -retryOnFail=false if you simply wish to repeat the CMD -n amount of times, regardless of outcome.

Usecases:

  • 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 -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.

About

xargs, but different..! Better at some things (repeating stuff), worse at others.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •