| +-----------------------------------------------------------------------+ */ if (php_sapi_name() != 'cli') die("Not in shell mode (php-cli)"); if (!defined('INSTALL_PATH')) define('INSTALL_PATH', realpath(__DIR__ . '/../../') . '/' ); require_once(INSTALL_PATH . 'program/include/iniset.php'); class Installer extends Laravel\Dusk\Console\ChromeDriverCommand { /** * Execute the console command. * * @param string $version * * @return void */ public function install($version = null) { $version = $version ? preg_replace('/\..*/', '', $version) : $this->latestVersion(); $version = trim($this->getUrl(sprintf($this->versionUrl, $version))); $currentOS = Laravel\Dusk\OperatingSystem::id(); foreach ($this->slugs as $os => $slug) { if ($os === $currentOS) { $archive = $this->download($version, $slug); $binary = $this->extract($archive); $this->rename($binary, $os); } } echo "ChromeDriver binary successfully installed for version $version.\n"; } /** * Get the contents of a URL * * @param string $url URL * * @return string|bool */ protected function getUrl(string $url) { return file_get_contents($url); } } $installer = new Installer; $installer->install($argv[1]);