/** * @param \App\Satis\ConfigManager $configManager * @param \App\Satis\BuildContext $buildContext * @param \Illuminate\Http\Request $request */ protected function build(ConfigManager $configManager, BuildContext $buildContext, Request $request) { if ($request->ajax()) { $buildContext->setItemName($request->get('what')); $configManager->setDisableBuild(true)->save(); $configManager->setDisableBuild(false)->forceBuild($buildContext); Response::json()->send(); } else { Response::json()->setStatusCode(404)->send(); } }
/** * @return bool|null * @throws \App\Satis\Exceptions\PackageBuildFailedException */ public function build() { $this->configPersister->lock($this->buildContext->getItemId()); $command = new BuildCommand($this->buildContext->getConfigFile(), config('satis.build_directory') . DIRECTORY_SEPARATOR . $this->buildContext->getBuildDirectory(), config('satis.proxy')); $command->setItem($this->buildContext->getItemName()); $output = null; try { $output = $command->withCd(base_path())->run($this->asyncMode); } catch (PackageBuildFailedException $e) { $output = $e->getMessage(); } finally { if ($this->asyncMode === false) { $this->configPersister->unlock($this->buildContext->getItemId()); } } return $output; }
/** * @param \App\Satis\BuildContext $buildContext */ public function forceBuild(BuildContext $buildContext) { if ($buildContext->getItemName() !== null) { $buildContext->setItemId(self::nameToId($buildContext->getItemName())); } $this->configBuilder->setBuildContext($buildContext)->build(); }