const path = require('path'); /* tln install-packages -- --package "platform-tools" --package "platforms;android-32" --package "build-tools;32.0.0" --package "ndk;23.2.8568313" */ module.exports = { tags: async (tln) => [], dotenvs: async (tln) => [], options: async (tln, args) => { args .prefix('TLN_ANDROID_SDK') .option('package', { describe: 'SDK package id', default: [], type: 'array' }); }, env: async (tln, env) => { env.ANDROID_HOME = env.TLN_COMPONENT_HOME; //DEPRICATED env.ANDROID_SDK = env.TLN_COMPONENT_HOME; env.ANDROID_SDK_ROOT = env.TLN_COMPONENT_HOME; env.PATH = [ path.join(env.TLN_COMPONENT_HOME, 'emulator'), path.join(env.TLN_COMPONENT_HOME, 'tools'), path.join(env.TLN_COMPONENT_HOME, 'cmdline-tools', 'latest', 'bin'), path.join(env.TLN_COMPONENT_HOME, 'platform-tools'), env.PATH ].join(path.delimiter); }, inherits: async (tln) => [], depends: async (tln) => [], steps: async (tln) => [ { id: 'version', builder: async (tln, script) => { const id = script.env.TLN_COMPONENT_ID; const {name, version} = tln.unpackId(id); if (version) { script.set([` echo [android sdk] && sdkmanager --version `]); } }}, { id: 'install', builder: async (tln, script) => { const id = script.env.TLN_COMPONENT_ID; const home = script.env.TLN_COMPONENT_HOME; const {name, version} = tln.unpackId(id); if (version && tln.canInstallComponent(tln, id, home)) { script.set( ['mkdir latest'].concat(tln.getDownloadScript(tln, { 'linux': { name: `commandlinetools-linux-${version}_latest.zip`, opts: { src: `cmdline-tools`, flt: '*', dest: `latest/`, rmv: null}, url: `https://dl.google.com/android/repository/commandlinetools-linux-${version}_latest.zip`, cmd: 'mv latest cmdline-tools/' }, 'darwin': { name: `commandlinetools-mac-${version}_latest.zip`, opts: { src: `cmdline-tools`, flt: '*', dest: `latest/`, rmv: null}, url: `https://dl.google.com/android/repository/commandlinetools-mac-${version}_latest.zip`, cmd: 'mv latest cmdline-tools/' }, 'win32': { name: `commandlinetools-win-${version}_latest.zip`, opts: { src: `cmdline-tools`, flt: '*', dest: `latest/`, rmv: null}, url: `https://dl.google.com/android/repository/commandlinetools-win-${version}_latest.zip`, cmd: 'move latest cmdline-tools/latest' } })) ); } } }, { id: 'list-packages', builder: async (tln, script) => script.set([ 'sdkmanager --list' ]) }, { id: 'install-packages', builder: async (tln, script) => { if (script.env.TLN_ANDROID_SDK_PACKAGE.length) { let params = script.env.TLN_ANDROID_SDK_PACKAGE; if (typeof params == 'string') { params = [params]; } const packages = params.map(v => `"${v}"`).join(' '); script.set([ `echo y|sdkmanager ${packages}` ]); } else { tln.logger.error('List of packages to install was not defined, please use next format --package=platform-tools (use multiple --package parameters if needed)'); } } }, { id: 'update-packages', builder: async (tln, script) => script.set([ 'sdkmanager --update' ]) }, { id: 'avd-list', builder: async (tln, script) => script.set([ 'sdkmanager --update' ]) }, //avdmanager list ], components: async (tln) => [ { id: 'android-sdk-6200805' }, { id: 'android-sdk-6858069' }, { id: 'android-sdk-8092744' }, { id: 'android-sdk-8512546' }, { id: 'android-sdk-9123335' }, ] }