|
|
3年前 | |
|---|---|---|
| .gitignore | 3年前 | |
| README.md | 3年前 | |
| lib.sh | 3年前 | |
| test.sh | 3年前 | |
| wait_for_pid_exit.sh | 3年前 | |
| wait_for_url.sh | 3年前 | |
I’m coming across having to write the same shell script bits occasionally, and I got tired of jumping backwards through my projects to find the latest version, so here is a repository.
wait_for_url $url $duration $iterationsWait for a particular URL to be available using curl. Wait $duration seconds between attempts, try $iterations times. Defaults to 1 seconds and 3 times.
Requires bash.
Signature:
wait_for_url url<string> [iterations<int> duration<int>]
Usage:
. ./wait_for_url.sh
# try 3 times, 1s apart
wait_for_url http://127.0.0.1:5984
# try 5 times, 1s apart
wait_for_url http://127.0.0.1:5984 5 3
# try 5 times, 3s apart
wait_for_url http://127.0.0.1:5984 5 3
wait_for_pid_exit $pid $duration $iterationsWait for a particular PID to exit. Wait $duration seconds between attempts, try $iterations times. Defaults to 1 seconds and 3 times.
Requires bash.
Signature:
wait_for_pid_exit pid<int> [iterations<int> duration<int>]
Usage:
. ./wait_for_pid_exit.sh
# try 3 times, 1s apart
wait_for_pid_exit 3618
# try 5 times, 1s apart
wait_for_pid_exit 3618 5 3
# try 5 times, 3s apart
wait_for_pid_exit 3618 5 3
error_and_exit $messagePrints an error message and then exits with exit code 1.
Signature:
error_and_exit [message<string>]
Usage:
. ./lib
# print message, then exit
error_and_exit "this did not work"
TODO:
error_and_exit "msg" 17assert_arg $argAssert if a particular argument has been passed to a function. Combine with && and || for error handling and setting of defaults for optional arguments.
Signature:
assert_arg arg<any>
Usage:
. ./lib.sh
# fail if arg is missing
my_fun () {
assert_arg $1 && url=$1 || error_and_exit "error 'url' missing"
# now $url is available
}
# set arg to default value if missing
my_fun () {
assert_arg $1 && iterations=$1 || iterations=5
# now $iterations is available
}
Set DEBUG=1 to get debugging output.