81 lines
2.6 KiB
Bash
Executable File
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"
|