71 lines
2.1 KiB
Bash
Executable File
71 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# @author juntao
|
|
|
|
# --- Configuration ---
|
|
SEARCH_DIR="app/build/generated/ksp/"
|
|
JSON_FILE_NAME="router-map-of-app.json"
|
|
UPLOAD_URL="https://app-api.ghzs6.com/app_router_map"
|
|
TOKEN="672b30260e33cf5e1540ff31"
|
|
VERSION=$(awk -v FS="versionName = " 'NF>1{print $2}' dependencies.gradle | sed "s/\"//g")
|
|
# --- End Configuration ---
|
|
|
|
# Do the build stuff to create a new JSON file
|
|
./gradlew clean
|
|
./gradlew assemblePublishCnRelease -PENABLE_ROUTE_DOC=true
|
|
|
|
# Find the JSON file
|
|
JSON_FILE=$(find "$SEARCH_DIR" -type f -path "*/resources/com/gh/gamecenter/route/docs/*" -name "$JSON_FILE_NAME" -print -quit)
|
|
|
|
# Check if jq is installed
|
|
if ! command -v jq &> /dev/null; then
|
|
echo "jq is not installed. Attempting to install..."
|
|
|
|
# Try to determine the operating system
|
|
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
# Assume Debian/Ubuntu
|
|
if command -v apt-get &> /dev/null; then
|
|
sudo apt-get update
|
|
sudo apt-get install -y jq
|
|
else
|
|
echo "Error: Could not determine package manager for Linux distribution."
|
|
exit 1
|
|
fi
|
|
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
|
# Assume macOS (using Homebrew)
|
|
if command -v brew &> /dev/null; then
|
|
brew update
|
|
brew install jq
|
|
else
|
|
echo "Error: Homebrew is not installed on macOS. Please install it from https://brew.sh/"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Error: Unsupported operating system: $OSTYPE"
|
|
exit 1
|
|
fi
|
|
|
|
# Verify jq installation
|
|
if ! command -v jq &> /dev/null; then
|
|
echo "Error: jq installation failed."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Check if the JSON file exists
|
|
if [ ! -f "$JSON_FILE" ]; then
|
|
echo "Error: JSON file not found: $JSON_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
# Use jq to construct the required JSON structure
|
|
NEW_JSON=$(jq -n \
|
|
--arg version "$VERSION" \
|
|
--argjson router_map "$(cat "$JSON_FILE")" \
|
|
'{version: $version, router_map: $router_map}')
|
|
|
|
# Upload the new JSON using curl
|
|
curl -X POST \
|
|
-H "Content-Type: application/json" \
|
|
-H "TOKEN: $TOKEN" \
|
|
-d "$NEW_JSON" \
|
|
"$UPLOAD_URL" |