Skip to content

Commit 6d933bb

Browse files
author
Richard Cunningham
committed
try publishing an existing feature
1 parent d5429c2 commit 6d933bb

File tree

2 files changed

+102
-0
lines changed

2 files changed

+102
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"name": "Pinched Android SDK",
3+
"id": "stolen-android-sdk",
4+
"version": "1.2.0",
5+
"description": "Stolen for testing feature publishing.",
6+
"containerEnv": {
7+
"ANDROID_HOME": "/usr/local/lib/android",
8+
"ANDROID_SDK_ROOT": "$ANDROID_HOME",
9+
"PATH": "$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools"
10+
},
11+
"options": {
12+
"platform": {
13+
"type": "string",
14+
"default": "34",
15+
"description": "SDK platform version"
16+
},
17+
"build_tools": {
18+
"type": "string",
19+
"default": "34.0.0",
20+
"description": "SDK build-tools version"
21+
},
22+
"base_packages": {
23+
"type": "string",
24+
"default": "",
25+
"description": "packages will override default packages, split by space"
26+
},
27+
"extra_packages": {
28+
"type": "string",
29+
"default": "",
30+
"description": "extra packages, split by space"
31+
}
32+
},
33+
"installsAfter": ["ghcr.io/devcontainers/features/common-utils", "ghcr.io/akhildevelops/devcontainer-features/apt"]
34+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#!/bin/bash
2+
set -e
3+
set +H
4+
5+
URL_SDK="https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip"
6+
7+
# Options.
8+
if [ -z "$PLATFORM" ]; then
9+
PLATFORM="34"
10+
fi
11+
if [ -z "$BUILD_TOOLS" ]; then
12+
BUILD_TOOLS="34.0.0"
13+
fi
14+
if [ -n "$BASE_PACKAGES" ]; then
15+
IFS=' ' read -ra PACKAGES <<< "$BASE_PACKAGES"
16+
else
17+
PACKAGES=( "platform-tools" "platforms;android-$PLATFORM" "build-tools;$BUILD_TOOLS" )
18+
fi
19+
if [ -n "$EXTRA_PACKAGES" ]; then
20+
IFS=' ' read -ra extra <<< "$EXTRA_PACKAGES"
21+
PACKAGES=("${PACKAGES[@]}" "${extra[@]}")
22+
fi
23+
24+
DEBIAN_FRONTEND="noninteractive" sudo apt update &&
25+
sudo apt install --no-install-recommends -y openjdk-17-jdk-headless unzip wget usbutils &&
26+
apt clean
27+
28+
# Prepare install folder.
29+
mkdir -p "$ANDROID_HOME"
30+
chown -R "$_REMOTE_USER:$_REMOTE_USER" "$ANDROID_HOME"
31+
32+
su - "$_REMOTE_USER"
33+
34+
cd $ANDROID_HOME
35+
36+
wget -q "$URL_SDK" -O sdk.zip
37+
unzip sdk.zip
38+
rm sdk.zip
39+
40+
mkdir -p $ANDROID_HOME/cmdline-tools/latest
41+
cd $ANDROID_HOME/cmdline-tools
42+
shopt -s extglob dotglob
43+
mv !(latest) latest
44+
shopt -u dotglob
45+
46+
cd $ANDROID_HOME
47+
48+
export PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin"
49+
50+
# Save original JAVA_HOME.
51+
OG_JAVA_HOME=$JAVA_HOME
52+
53+
# thanks https://askubuntu.com/questions/772235/how-to-find-path-to-java#comment2258200_1029326.
54+
export JAVA_HOME=$(dirname $(dirname $(update-alternatives --list javac 2>&1 | head -n 1)))
55+
56+
# TODO: Update everything to future-proof for the link getting stale.
57+
# yes | sdkmanager "cmdline-tools;latest"
58+
# Download the platform tools.
59+
yes | sdkmanager "${PACKAGES[@]}"
60+
61+
# Restore JAVA_HOME.
62+
export JAVA_HOME=$OG_JAVA_HOME
63+
64+
# Make sure the Android SDK has the correct permissions.
65+
sudo chown -R "$_REMOTE_USER:$_REMOTE_USER" "$ANDROID_HOME"
66+
67+
# Exist subshell.
68+
exit

0 commit comments

Comments
 (0)