Browse Source

feat: remove bashisms

main
Jan Lehnardt 3 years ago
parent
commit
c57c5d3524
5 changed files with 19 additions and 15 deletions
  1. +10
    -6
      README.md
  2. +4
    -4
      lib.sh
  3. +1
    -1
      test.sh
  4. +2
    -2
      wait_for_pid_exit.sh
  5. +2
    -2
      wait_for_url.sh

+ 10
- 6
README.md View File

@@ -14,6 +14,8 @@ I’m coming across having to write the same shell script bits occasionally, and


Wait for a particular URL to be available using `curl`. Wait `$duration` seconds between attempts, try `$iterations` times. Defaults to `1` seconds and `3` times. Wait 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: Signature:


```shell ```shell
@@ -23,7 +25,7 @@ wait_for_url url<string> [iterations<int> duration<int>]
Usage: Usage:


```shell ```shell
source ./wait_for_url.sh
. ./wait_for_url.sh


# try 3 times, 1s apart # try 3 times, 1s apart
wait_for_url http://127.0.0.1:5984 wait_for_url http://127.0.0.1:5984
@@ -39,6 +41,8 @@ wait_for_url http://127.0.0.1:5984 5 3


Wait for a particular PID to exit. Wait `$duration` seconds between attempts, try `$iterations` times. Defaults to `1` seconds and `3` times. Wait for a particular PID to exit. Wait `$duration` seconds between attempts, try `$iterations` times. Defaults to `1` seconds and `3` times.


Requires `bash`.

Signature: Signature:


```shell ```shell
@@ -48,7 +52,7 @@ wait_for_pid_exit pid<int> [iterations<int> duration<int>]
Usage: Usage:


```shell ```shell
source ./wait_for_pid_exit.sh
. ./wait_for_pid_exit.sh


# try 3 times, 1s apart # try 3 times, 1s apart
wait_for_pid_exit 3618 wait_for_pid_exit 3618
@@ -74,7 +78,7 @@ Usage:


```shell ```shell


source ./lib
. ./lib


# print message, then exit # print message, then exit
error_and_exit "this did not work" error_and_exit "this did not work"
@@ -98,17 +102,17 @@ assert_arg arg<any>
Usage: Usage:


```shell ```shell
source ./lib.sh
. ./lib.sh




# fail if arg is missing # fail if arg is missing
function my_fun () {
my_fun () {
assert_arg $1 && url=$1 || error_and_exit "error 'url' missing" assert_arg $1 && url=$1 || error_and_exit "error 'url' missing"
# now $url is available # now $url is available
} }


# set arg to default value if missing # set arg to default value if missing
function my_fun () {
my_fun () {
assert_arg $1 && iterations=$1 || iterations=5 assert_arg $1 && iterations=$1 || iterations=5
# now $iterations is available # now $iterations is available
} }


+ 4
- 4
lib.sh View File

@@ -1,22 +1,22 @@


function debug () {
debug () {
if [ -n "$DEBUG" ]; then if [ -n "$DEBUG" ]; then
echo "$1" echo "$1"
fi fi
} }


function debug_inline () {
debug_inline () {
if [ -n "$DEBUG" ]; then if [ -n "$DEBUG" ]; then
printf "$1" printf "$1"
fi fi
} }


function error_and_exit () {
error_and_exit () {
echo $1 || "error" echo $1 || "error"
exit 1 exit 1
} }


function assert_arg () {
assert_arg () {
arg=$1 arg=$1


if [ -z "$arg" ]; then if [ -z "$arg" ]; then


+ 1
- 1
test.sh View File

@@ -19,7 +19,7 @@
# echo # echo




source ./wait_for_pid_exit.sh
. ./wait_for_pid_exit.sh


echo test5 echo test5
(wait_for_pid_exit 45591 4 17) (wait_for_pid_exit 45591 4 17)

+ 2
- 2
wait_for_pid_exit.sh View File

@@ -1,7 +1,7 @@


source ./lib.sh
. ./lib.sh


function wait_for_pid_exit () {
wait_for_pid_exit () {
assert_arg "$1" && pid="$1" || error_and_exit "pid not provided, exiting" assert_arg "$1" && pid="$1" || error_and_exit "pid not provided, exiting"
assert_arg "$2" && iterations="$2" || iterations=3 assert_arg "$2" && iterations="$2" || iterations=3
assert_arg "$3" && duration="$3" || duration=1 assert_arg "$3" && duration="$3" || duration=1


+ 2
- 2
wait_for_url.sh View File

@@ -1,7 +1,7 @@


source ./lib.sh
. ./lib.sh


function wait_for_url () {
wait_for_url () {
assert_arg "$1" && url="$1" || error_and_exit "url not provided, exiting" assert_arg "$1" && url="$1" || error_and_exit "url not provided, exiting"
assert_arg "$2" && iterations="$2" || iterations=3 assert_arg "$2" && iterations="$2" || iterations=3
assert_arg "$3" && duration="$3" || duration=1 assert_arg "$3" && duration="$3" || duration=1


Loading…
Cancel
Save