public function boot(Definition $definition, Installation $installation, Router $router)
 {
     $configPath = __DIR__ . '/../config/larastaller.php';
     $this->publishes([$configPath => config_path('larastaller.php')], 'config');
     $this->loadViewsFrom(__DIR__ . '/../resources/views', 'larastaller');
     $definition->setRequirements(config('larastaller.requirements'));
     $definition->setVersions(config('larastaller.versions'));
     $this->commands([InstallCommand::class, ChangesCommand::class]);
     if (!$installation->isInstalled()) {
         //redirect none install requests to the installer
         $this->registerMiddleware('LeeMason\\Larastaller\\Middlewares\\InstallMiddleware');
         $router->get('install', ['as' => 'installer.get', 'uses' => Http\Controllers\InstallController::class . '@getInstall']);
         $router->post('install/validate', ['as' => 'installer.validate', 'uses' => Http\Controllers\InstallController::class . '@postInstallValidate']);
         $router->post('install', ['as' => 'installer.post', 'uses' => Http\Controllers\InstallController::class . '@postInstall']);
     } elseif (!$installation->isUpdated()) {
         //redirect none update requests to the installer
         $this->registerMiddleware('LeeMason\\Larastaller\\Middlewares\\UpdateMiddleware');
         $router->get('update', function () {
             return 'updater';
         });
     }
 }