Browse Source

feat: remove bashisms

main
Jan Lehnardt 1 year 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.

Requires `bash`.

Signature:

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

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

# try 3 times, 1s apart
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.

Requires `bash`.

Signature:

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

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

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

```shell

source ./lib
. ./lib

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

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


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

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


+ 4
- 4
lib.sh View File

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

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

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

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

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

if [ -z "$arg" ]; then


+ 1
- 1
test.sh View File

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


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

echo test5
(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 "$2" && iterations="$2" || iterations=3
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 "$2" && iterations="$2" || iterations=3
assert_arg "$3" && duration="$3" || duration=1


Loading…
Cancel
Save