/** * Prepares the console application. * * @param string $filename * @param \Auryn\Injector|null $injector * @param string|null $directory * @return \Rougin\Blueprint\Blueprint */ public static function boot($filename, \Auryn\Injector $injector = null, $directory = null) { list($directory, $injector) = self::prepareArguments($directory, $injector); // Add League's Flysystem to injector $folder = new \League\Flysystem\Adapter\Local($directory); $system = new \League\Flysystem\Filesystem($folder); $injector->share($system); // Define the Blueprint instance $application = new \Symfony\Component\Console\Application(self::$name, self::$version); $blueprint = new \Rougin\Blueprint\Blueprint($application, $injector); // Sets the path to default in Blueprint if (!file_exists($filename)) { $blueprint->setCommandPath(__DIR__ . '/Commands'); $blueprint->setCommandNamespace('Rougin\\Blueprint\\Commands'); return $blueprint; } return self::preparePaths($blueprint, $filename); }