Jeremy Lin
5 years ago
1 changed files with 52 additions and 8 deletions
@ -1,8 +1,52 @@ |
|||||
#!/usr/bin/env sh |
#!/bin/sh |
||||
|
|
||||
if [ -z "$ROCKET_TLS"] |
# Use the value of the corresponding env var (if present), |
||||
then |
# or a default value otherwise. |
||||
curl --fail http://localhost:${ROCKET_PORT:-"80"}/alive || exit 1 |
: ${DATA_FOLDER:="data"} |
||||
else |
: ${ROCKET_PORT:="80"} |
||||
curl --insecure --fail https://localhost:${ROCKET_PORT:-"80"}/alive || exit 1 |
|
||||
|
CONFIG_FILE="${DATA_FOLDER}"/config.json |
||||
|
|
||||
|
# Given a config key, return the corresponding config value from the |
||||
|
# config file. If the key doesn't exist, return an empty string. |
||||
|
get_config_val() { |
||||
|
local key="$1" |
||||
|
# Extract a line of the form: |
||||
|
# "domain": "https://bw.example.com/path", |
||||
|
grep "\"${key}\":" "${CONFIG_FILE}" | |
||||
|
# To extract just the value (https://bw.example.com/path), delete: |
||||
|
# (1) everything up to and including the first ':', |
||||
|
# (2) whitespace and '"' from the front, |
||||
|
# (3) ',' and '"' from the back. |
||||
|
sed -e 's/[^:]\+://' -e 's/^[ "]\+//' -e 's/[,"]\+$//' |
||||
|
} |
||||
|
|
||||
|
# Extract the base path from a domain URL. For example: |
||||
|
# - `` -> `` |
||||
|
# - `https://bw.example.com` -> `` |
||||
|
# - `https://bw.example.com/` -> `` |
||||
|
# - `https://bw.example.com/path` -> `/path` |
||||
|
# - `https://bw.example.com/multi/path` -> `/multi/path` |
||||
|
get_base_path() { |
||||
|
echo "$1" | |
||||
|
# Delete: |
||||
|
# (1) everything up to and including '://', |
||||
|
# (2) everything up to '/', |
||||
|
# (3) trailing '/' from the back. |
||||
|
sed -e 's|.*://||' -e 's|[^/]\+||' -e 's|/*$||' |
||||
|
} |
||||
|
|
||||
|
# Read domain URL from config.json, if present. |
||||
|
if [ -r "${CONFIG_FILE}" ]; then |
||||
|
domain="$(get_config_val 'domain')" |
||||
|
if [ -n "${domain}" ]; then |
||||
|
# config.json 'domain' overrides the DOMAIN env var. |
||||
|
DOMAIN="${domain}" |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
base_path="$(get_base_path "${DOMAIN}")" |
||||
|
if [ -n "${ROCKET_TLS}" ]; then |
||||
|
s='s' |
||||
fi |
fi |
||||
|
curl --insecure --fail "http${s}://localhost:${ROCKET_PORT}${base_path}/alive" || exit 1 |
||||
|
Loading…
Reference in new issue