forked from zyf722/lokalise-badge
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrender.sh
54 lines (47 loc) · 1.69 KB
/
render.sh
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RESET='\033[0m'
color_echo() {
echo -e "$1$2$RESET"
}
LOGO_SVG="$(cat lokalise.svg | sed 's/"/\\"/g')"
echo -n "Fetching project info from Lokalise API... "
CURL_RESULT=$(curl -s -X GET -H 'Accept: application/json' -H "X-Api-Token: $API_TOKEN" "https://api.lokalise.com/api2/projects/$PROJECT_ID")
if [ $? -ne 0 ]; then
color_echo $RED "Failed."
color_echo $RED "\nFailed to call Lokalise API with cURL."
exit 1
elif [ "$(echo $CURL_RESULT | jq -r '.project_id')" != "$PROJECT_ID" ]; then
color_echo $RED "Failed."
color_echo $RED "\nFailed to fetch project info from Lokalise API. Got unexpected response:"
color_echo $YELLOW "$CURL_RESULT"
exit 1
fi
color_echo $GREEN "Done."
if [ ! -d "badges" ]; then
echo "Creating 'badges' directory..."
mkdir "badges"
fi
render_badge() {
# Check https://shields.io/badges/endpoint-badge for badge schema
local MESSAGE="$1"
local QUERY="{schemaVersion: 1, label: \"Lokalise\", message: \"$MESSAGE\", color: \"green\", logoSvg: \"$LOGO_SVG\"}"
local BADGE=$(echo $CURL_RESULT | jq --indent 2 "$QUERY")
if [ $? -ne 0 ]; then
color_echo $RED "Failed."
color_echo $RED "\nFailed to render badge with message:"
color_echo $YELLOW "$MESSAGE"
exit 1
fi
echo $BADGE
return 0
}
# Add new badges in meta.json
# Check https://developers.lokalise.com/reference/retrieve-a-project-1 for API response JSON schema
declare -A BADGES="($(cat meta.json | jq -r 'to_entries[] | @sh "[\(.key)]=\(.value)"'))"
for BADGE_NAME in "${!BADGES[@]}"; do
echo -n "Rendering badge: '$BADGE_NAME'... "
render_badge "${BADGES[$BADGE_NAME]}" >"badges/$BADGE_NAME.json"
color_echo $GREEN "Done."
done