1*c4ef02aeSEvan Baconimport spawnAsync from '@expo/spawn-async'; 2*c4ef02aeSEvan Bacon 3*c4ef02aeSEvan Baconimport { Prerequisite, PrerequisiteCommandError } from './Prerequisite'; 4*c4ef02aeSEvan Bacon 5*c4ef02aeSEvan Baconexport class SecurityBinPrerequisite extends Prerequisite { 6*c4ef02aeSEvan Bacon static instance = new SecurityBinPrerequisite(); 7*c4ef02aeSEvan Bacon 8*c4ef02aeSEvan Bacon async assertImplementation(): Promise<void> { 9*c4ef02aeSEvan Bacon try { 10*c4ef02aeSEvan Bacon // make sure we can run security 11*c4ef02aeSEvan Bacon await spawnAsync('which', ['security']); 12*c4ef02aeSEvan Bacon } catch { 13*c4ef02aeSEvan Bacon throw new PrerequisiteCommandError( 14*c4ef02aeSEvan Bacon 'SECURITY_BIN', 15*c4ef02aeSEvan Bacon "Cannot code sign project because the CLI `security` is not available on your computer.\nPlease ensure it's installed and try again." 16*c4ef02aeSEvan Bacon ); 17*c4ef02aeSEvan Bacon } 18*c4ef02aeSEvan Bacon } 19*c4ef02aeSEvan Bacon} 20