text: /* eslint-disable global-require */
  /* eslint-disable import/no-extraneous-dependencies */
  const { execSync } = require('child_process');
  const { join } = require('path');
  const findChrome = require('carlo/lib/find_chrome');
  const detectInstaller = require('detect-installer');
  
  const installPuppeteer = () => {
    // find can use package manger
    const packages = detectInstaller(join(__dirname, '../../'));
    // get installed package manger
    const packageName = packages.find(detectInstaller.hasPackageCommand) || 'npm';
    console.log(`🤖 will use ${packageName} install puppeteer`);
    const command = `${packageName} ${packageName.includes('yarn') ? 'add' : 'i'} puppeteer`;
    execSync(command, {
      stdio: 'inherit',
    });
  };
  
  const initPuppeteer = async () => {
    try {
      // eslint-disable-next-line import/no-unresolved
      const findChromePath = await findChrome({});
      const { executablePath } = findChromePath;
      console.log(`🧲 find you browser in ${executablePath}`);
      return;
    } catch (error) {
      console.log('🧲 no find chrome');
    }
  
    try {
      require.resolve('puppeteer');
    } catch (error) {
      // need install puppeteer
      await installPuppeteer();
    }
  };
  
  initPuppeteer();
  