repeater

command module
v1.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2024 License: MIT Imports: 19 Imported by: 0

README

repeater

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

Test coverage: 75.7% 😌👏

repeatoopher

Installation
go install github.com/baalimago/repeater@latest

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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL