1eeffdb10STomasz Sapetaimport { Command } from '@expo/commander'; 2eeffdb10STomasz Sapetaimport path from 'path'; 3eeffdb10STomasz Sapeta 4eeffdb10STomasz Sapetaimport { generateDynamicMacrosAsync } from '../dynamic-macros/generateDynamicMacros'; 5eeffdb10STomasz Sapetaimport { Directories } from '../expotools'; 6eeffdb10STomasz Sapeta 7eeffdb10STomasz Sapetaconst EXPO_DIR = Directories.getExpoRepositoryRootDir(); 8eeffdb10STomasz Sapetaconst ANDROID_DIR = Directories.getAndroidDir(); 9eeffdb10STomasz Sapetaconst GENERATED_DIR = path.join(ANDROID_DIR, 'expoview/src/main/java/host/exp/exponent/generated'); 10eeffdb10STomasz Sapetaconst TEMPLATE_FILES_DIR = path.join(EXPO_DIR, 'template-files'); 11eeffdb10STomasz Sapeta 12eeffdb10STomasz Sapetaasync function generateAction(options): Promise<void> { 13eeffdb10STomasz Sapeta const buildConstantsPath = 14eeffdb10STomasz Sapeta options.buildConstantsPath || path.join(GENERATED_DIR, 'ExponentBuildConstants.java'); 15eeffdb10STomasz Sapeta const configuration = options.configuration || process.env.CONFIGURATION || 'release'; 16eeffdb10STomasz Sapeta 17eeffdb10STomasz Sapeta await generateDynamicMacrosAsync({ 18eeffdb10STomasz Sapeta buildConstantsPath, 19eeffdb10STomasz Sapeta platform: 'android', 20eeffdb10STomasz Sapeta expoKitPath: EXPO_DIR, 21eeffdb10STomasz Sapeta templateFilesPath: TEMPLATE_FILES_DIR, 22*f1f866e8SŁukasz Kosmaty bareExpo: options.bare, 23eeffdb10STomasz Sapeta configuration, 24eeffdb10STomasz Sapeta }); 25eeffdb10STomasz Sapeta} 26eeffdb10STomasz Sapeta 27eeffdb10STomasz Sapetaexport default (program: Command) => { 28eeffdb10STomasz Sapeta program 29eeffdb10STomasz Sapeta .command('android-generate-dynamic-macros') 30eeffdb10STomasz Sapeta .option( 31eeffdb10STomasz Sapeta '--buildConstantsPath [string]', 32eeffdb10STomasz Sapeta 'Path to ExponentBuildConstants.java relative to `android` folder. Optional.' 33eeffdb10STomasz Sapeta ) 34eeffdb10STomasz Sapeta .option( 35eeffdb10STomasz Sapeta '--configuration [string]', 36eeffdb10STomasz Sapeta 'Build configuration. Defaults to `process.env.CONFIGURATION` or "debug".' 37eeffdb10STomasz Sapeta ) 38*f1f866e8SŁukasz Kosmaty .option('--bare', 'Generate macros only for the bare-expo project.') 39eeffdb10STomasz Sapeta .description('Generates dynamic macros for Android client.') 40eeffdb10STomasz Sapeta .asyncAction(generateAction); 41eeffdb10STomasz Sapeta}; 42