/
get_servers
executable file
·27 lines (24 loc) · 1.34 KB
/
get_servers
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash -ue
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
CREDS_FILE="${CREDS_FILE:-"creds.env"}"
[ -f "$CREDS_FILE" ] && source "$CREDS_FILE"
CLIENT_API_URL="${CLIENT_API_URL:-"https://client-api.privado.io/v1"}"
USER_AGENT="${USER_AGENT:-"App: 3.0.0 (576942783), macOS: Version 12.4 (Build 21F79)"}"
PRIVADO_DATA_DIR="${PRIVADO_DATA_DIR:-"$SCRIPT_DIR/data"}"
LOGIN_TOKEN_FILE="${LOGIN_TOKEN:-"$PRIVADO_DATA_DIR/token.json"}"
SERVERS_JSON="${SERVERS_JSON:-"$PRIVADO_DATA_DIR/servers.json"}"
command -v curl >/dev/null 2>&1 || { echo >&2 "I require curl but it's not installed. Aborting."; exit 254; }
command -v jq >/dev/null 2>&1 || { echo >&2 "I require jq but it's not installed. Aborting."; exit 254; }
[ -f "$LOGIN_TOKEN_FILE" ] || { echo >&2 "ERROR: not logged in"; exit 100; }
AUTH_TOKEN="$(cat "$LOGIN_TOKEN_FILE" | jq -r '.access_token')"
[ -n "$AUTH_TOKEN" ] || { echo >&2 "ERROR: no auth access_token found, login again"; exit 101; }
mkdir -p "$(dirname "$SERVERS_JSON")"
curl "$CLIENT_API_URL/servers?nodes=all&includegeo=1" \
--compressed --silent \
-H "User-Agent: $USER_AGENT" \
-H 'Accept-Encoding: gzip, deflate, br' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer '$AUTH_TOKEN \
| jq > "$SERVERS_JSON" \
&& echo "Successfully got server list" \
|| echo >&2 "ERROR: failed to get server list"