(relativePath)
| 684 | } |
| 685 | |
| 686 | function androidSdkTool(relativePath) { |
| 687 | const roots = [ |
| 688 | process.env.ANDROID_HOME, |
| 689 | process.env.ANDROID_SDK_ROOT, |
| 690 | process.platform === "win32" |
| 691 | ? path.join(os.homedir(), "AppData", "Local", "Android", "Sdk") |
| 692 | : null, |
| 693 | path.join(os.homedir(), "Library", "Android", "sdk"), |
| 694 | path.join(os.homedir(), "Android", "Sdk"), |
| 695 | ].filter(Boolean); |
| 696 | for (const root of roots) { |
| 697 | const candidate = androidSdkToolCandidate(root, relativePath); |
| 698 | if (fs.existsSync(candidate)) { |
| 699 | return candidate; |
| 700 | } |
| 701 | } |
| 702 | return null; |
| 703 | } |
| 704 | |
| 705 | function resolveSimDeckCli() { |
| 706 | const candidates = |
no test coverage detected