Skip to content

Commit 548516d

Browse files
refactor(taskfile): use status directives for android:setup
Split setup into subtasks with proper status checks: - setup:jdk: check /opt/homebrew/opt/openjdk@21 - setup:sdk: check cmdline-tools directory - setup:ndk: check ndk directory (depends on jdk, sdk) - setup:rust-targets: check rustup installed targets Each subtask skips if already installed. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent c99c88b commit 548516d

File tree

1 file changed

+48
-19
lines changed

1 file changed

+48
-19
lines changed

taskfiles/android.yml

Lines changed: 48 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -27,26 +27,8 @@ tasks:
2727

2828
setup:
2929
desc: "Install Android development dependencies"
30-
env:
31-
JAVA_HOME: /opt/homebrew/opt/openjdk@21
32-
PATH: /opt/homebrew/opt/openjdk@21/bin:{{.PATH}}
30+
deps: [setup:jdk, setup:sdk, setup:ndk, setup:rust-targets]
3331
cmds:
34-
- |
35-
echo "Installing JDK and Android SDK..."
36-
for pkg in openjdk@21 android-commandlinetools; do
37-
brew list "$pkg" &>/dev/null || brew install "$pkg"
38-
done
39-
- |
40-
NDK_DIR="{{.ANDROID_HOME}}/ndk/28.2.13676358"
41-
if [ -d "$NDK_DIR" ]; then
42-
echo "Android NDK already installed at $NDK_DIR"
43-
else
44-
echo "Installing Android NDK..."
45-
yes | sdkmanager --install "ndk;28.2.13676358"
46-
fi
47-
- |
48-
echo "Adding Android Rust targets..."
49-
rustup target add {{.ANDROID_ARM64_TARGET}} {{.ANDROID_ARMV7_TARGET}} {{.ANDROID_X86_TARGET}} {{.ANDROID_X64_TARGET}}
5032
- |
5133
echo "Android setup complete!"
5234
echo "Add these to your shell profile:"
@@ -58,6 +40,53 @@ tasks:
5840
echo ' export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"'
5941
silent: true
6042

43+
setup:jdk:
44+
desc: "Install OpenJDK 21"
45+
internal: true
46+
status:
47+
- test -d /opt/homebrew/opt/openjdk@21
48+
cmds:
49+
- echo "Installing OpenJDK 21..."
50+
- brew install openjdk@21
51+
silent: true
52+
53+
setup:sdk:
54+
desc: "Install Android SDK command-line tools"
55+
internal: true
56+
status:
57+
- test -d {{.ANDROID_HOME}}/cmdline-tools
58+
cmds:
59+
- echo "Installing Android SDK..."
60+
- brew install android-commandlinetools
61+
silent: true
62+
63+
setup:ndk:
64+
desc: "Install Android NDK"
65+
internal: true
66+
deps: [setup:jdk, setup:sdk]
67+
env:
68+
JAVA_HOME: /opt/homebrew/opt/openjdk@21
69+
PATH: /opt/homebrew/opt/openjdk@21/bin:{{.PATH}}
70+
status:
71+
- test -d {{.ANDROID_HOME}}/ndk/28.2.13676358
72+
cmds:
73+
- echo "Installing Android NDK..."
74+
- yes | sdkmanager --install "ndk;28.2.13676358"
75+
silent: true
76+
77+
setup:rust-targets:
78+
desc: "Install Rust Android targets"
79+
internal: true
80+
status:
81+
- rustup target list --installed | grep -q {{.ANDROID_ARM64_TARGET}}
82+
- rustup target list --installed | grep -q {{.ANDROID_ARMV7_TARGET}}
83+
- rustup target list --installed | grep -q {{.ANDROID_X86_TARGET}}
84+
- rustup target list --installed | grep -q {{.ANDROID_X64_TARGET}}
85+
cmds:
86+
- echo "Adding Android Rust targets..."
87+
- rustup target add {{.ANDROID_ARM64_TARGET}} {{.ANDROID_ARMV7_TARGET}} {{.ANDROID_X86_TARGET}} {{.ANDROID_X64_TARGET}}
88+
silent: true
89+
6190
keystore:setup:
6291
desc: "Generate keystore.properties from environment variables"
6392
vars:

0 commit comments

Comments
 (0)