1#!/bin/bash
2MODE=${1:-s}
3
4# Needed for compat between GNU sed (Linux default) and BSD sed (OSX default).
5#   - GNU sed requires no space between value for -i
6#   - BSD sed requires that a value be passed for -i.
7function fn_sed_inplace {
8  sed -i.bak "$@" && rm "${@: -1}.bak"
9}
10
11function fn_update_snapshot {
12  BUILDID_ANDROIDX=`curl -s https://androidx.dev/snapshots/builds | grep -o '/snapshots/builds/[0-9]\+/artifacts' | sed 's|/snapshots/builds/||;s|/artifacts||' | head -n 1`
13  echo "Updating snapshot id: $BUILDID_ANDROIDX"
14  fn_sed_inplace "s/androidx.playground.snapshotBuildId=.*/androidx.playground.snapshotBuildId=$BUILDID_ANDROIDX/g" playground-common/playground.properties
15}
16
17function fn_update_metalava {
18  BUILDID_METALAVA=`curl -s https://androidx.dev/metalava/builds | grep -o '/metalava/builds/[0-9]\+/artifacts' | sed 's|/metalava/builds/||;s|/artifacts||' | head -n 1`
19  echo "Updating metalava id: $BUILDID_METALAVA"
20  fn_sed_inplace "s/androidx.playground.metalavaBuildId=.*/androidx.playground.metalavaBuildId=$BUILDID_METALAVA/g" playground-common/playground.properties
21}
22
23if [ "$MODE" == "s" ]; then
24  fn_update_snapshot
25elif [ "$MODE" == "a" ]; then
26  fn_update_snapshot
27  fn_update_metalava
28fi
29