You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							53 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							53 lines
						
					
					
						
							1.6 KiB
						
					
					
				| #!/bin/sh | |
|  | |
| # Use the value of the corresponding env var (if present), | |
| # or a default value otherwise. | |
| : ${DATA_FOLDER:="data"} | |
| : ${ROCKET_PORT:="80"} | |
| 
 | |
| 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 | |
| curl --insecure --fail --silent --show-error \ | |
|      "http${s}://localhost:${ROCKET_PORT}${base_path}/alive" || exit 1
 | |
| 
 |