GBA003/External/Harmony/Backends/Drive/Google/GoogleAPI/Source/Tools/GenerateCheckedInServices
2024-05-30 10:22:15 +08:00

81 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# This script does work currently needed to regenerate the sources found
# in Source/GeneratedServices.
set -e
# Where does this script live so we can hit things in the tree.
readonly ToolsDir=$(dirname "$(echo $0 | sed -e "s,^\([^/]\),$(pwd)/\1,")")
readonly ScriptName=$(basename "$0")
readonly ServiceGeneratorDir="${ToolsDir}/ServiceGenerator"
readonly GeneratedServicesDir="${ToolsDir}/../GeneratedServices"
# This only works for Xcode default setting on where build output goes and when
# building with -alltargets and not with -scheme.
readonly ServiceGeneratorBinary="${ServiceGeneratorDir}/build/Debug/ServiceGenerator"
BRIEF_MODE=--brief
if [[ $# -ge 1 && ( "$1" == "--no-brief" ) ]] ; then
BRIEF_MODE=
shift
fi
readonly EXTRA_OPTS=$*
# -----------------------------------------------------------------------------
# Helper to print a message and hopefully have it seen.
Banner() {
echo ""
echo "==============================================================================="
echo " $*"
echo "==============================================================================="
echo ""
}
# -----------------------------------------------------------------------------
Banner "Ensuring ServiceGenerator is up to date..."
/usr/bin/xcodebuild \
-project "${ServiceGeneratorDir}/ServiceGenerator.xcodeproj" \
-configuration Debug \
-alltargets \
build
# -----------------------------------------------------------------------------
SERVICE_GENERATOR_COMMAND=(
"${ServiceGeneratorBinary}"
--outputDir "${GeneratedServicesDir}"
--addServiceNameDir yes
--removeUnknownFiles yes
--auditJSON
--guessFormattedNames
--httpHeader X-User-IP:0.0.0.0
${BRIEF_MODE}
${EXTRA_OPTS}
# Generate everything flagged as preferred.
--generatePreferred
)
SERVICE_GENERATOR_COMMAND+=(
# The Admin SDK is odd, it is a bunch of 'admin' apis with different
# versions to "group" them, so only one gets marked as preferred. To generate
# it we have to manually fetch anything not preferred which means updating
# this if there are changes. admin:reports_v1 is currently the preferred one
# in discovery.
admin:datatransfer_v1
admin:directory_v1
# Include a filter so there are no warnings/infos during normal generation.
--messageFilter "${ToolsDir}/${ScriptName}-message_filter.json"
)
# Away it goes...
Banner "Running the ServiceGenerator..."
"${SERVICE_GENERATOR_COMMAND[@]}"
# -----------------------------------------------------------------------------
Banner "Ensure the podspec is up to date..."
"${ToolsDir}/update_podspec_services.py"