1#!/bin/bash -e
2if ! [ -e build/soong ]; then
3  echo "This script must be run from the top of the tree"
4  exit 1
5fi
6
7commandline="$*"
8
9sdk="$1"
10if [[ -z "$sdk" ]]; then
11  echo "usage: $0 <new-sdk-int> [module1,module2,..] [bug-id]"
12  exit 1
13fi
14shift
15
16if [[ -n $1 ]] && ! [[ $1 =~ [0-9]+ ]]; then
17  IFS=',' read -r -a modules <<< "$1"
18  modules_arg="--modules $1"
19  shift
20fi
21
22bug="$1"
23
24SDKEXT="packages/modules/SdkExtensions/"
25
26TARGET_PRODUCT=aosp_arm64 build/soong/soong_ui.bash --make-mode --soong-only gen_sdk
27out/soong/host/linux-x86/bin/gen_sdk \
28    --database ${SDKEXT}/gen_sdk/extensions_db.textpb \
29    --action new_sdk \
30    --sdk "$sdk" \
31    $modules_arg
32
33message="Bump SDK Extension version to ${sdk}\n"
34
35if [[ "$modules_arg" ]]; then
36  message+="\nModules with new APIs:\n"
37  for mod in "${modules[@]}"; do
38    message+="  - $mod\n"
39  done
40fi
41
42message+="\nGenerated with:
43$ $0 $commandline
44
45Database update generated with:
46$ gen_sdk --action new_sdk --sdk $sdk
47"
48message+=$(test -z "$bug" || echo "\nBug: $bug")
49message+="\nTest: presubmit"
50message+="\nIgnore-AOSP-first: SDKs are finalized outside of AOSP"
51
52message=$(echo -e "$message") # expand '\n' chars
53git -C ${SDKEXT} commit -a -m "$message"
54