Skip to content

Instantly share code, notes, and snippets.

@Kshitij09
Last active November 15, 2020 16:22
Show Gist options
  • Save Kshitij09/27bf72cfba5c922f095ef395eb953475 to your computer and use it in GitHub Desktop.
Save Kshitij09/27bf72cfba5c922f095ef395eb953475 to your computer and use it in GitHub Desktop.
Download and install latest "compose-samples" (https://github.com/android/compose-samples/releases). Make sure you have "curl, wget, jq and adb" installed on your machine
#!/bin/bash
check_if_assets_empty() {
release_id=$1
assets=$(curl -q https://api.github.com/repos/android/compose-samples/releases/$release_id/assets 2>/dev/null)
[ ${#assets[@]} -eq 0 ]
}
ask() {
read -ep "$1" answer
[ "$answer" == "${answer#[Yy]}" ]
}
app_names=(
"crane-debug.apk"
"jetcaster-debug.apk"
"jetchat-debug.apk"
"jetnews-debug.apk"
"jetsnack-debug.apk"
"jetsurvey-debug.apk"
"owl-debug.apk"
"rally-debug.apk"
)
install_apps() {
app_dir=$1
for app in ${app_names[@]}; do
echo "Installing $app"
adb install -r $app_dir/$app
done
}
download_assets() {
tag_name=$1
tag_name="${tag_name%\"}"
tag_name="${tag_name#\"}"
download_dir="/tmp/compose-apps-${tag_name/}"
mkdir -p $download_dir
echo "Downloading apks in $download_dir"
for app in ${app_names[@]}; do
echo "Downloading $app"
wget -q "https://github.com/android/compose-samples/releases/download/$tag_name/$app" -P $download_dir
done
echo "Done, Installing..."
install_apps download_dir
}
download_release() {
tag_name=$1
ask "Downloading apks from: $tag_name, continue (y/n)? " || download_assets $tag_name
}
get_previous_release() {
tag_name=$(curl -q "https://api.github.com/repos/android/compose-samples/releases" 2>/dev/null | jq ".[1] | .tag_name")
echo "Tag name: $tag_name"
ask "Downloading apks from tag-name: $tag_name, continue (y/n)? " || download_assets $tag_name
}
latest_release_id=$(curl -q "https://api.github.com/repos/android/compose-samples/releases/latest" 2>/dev/null | jq ".id")
assets_empty=$(check_if_assets_empty latest_release_id)
if [ assets_empty ]; then
echo "Latest assets empty" && get_previous_release
else
echo "Installing from latest version" && download_release latest_release_id
fi
@Kshitij09
Copy link
Author

How to install

  1. Connect your phone
  2. Make script executable: chmod +x get-compose-samples.sh
  3. Run: sh get-compose-samples.sh
  4. Find apps on your phone 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment