コード例 #1
0
 /**
  * @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();
     }
 }
コード例 #2
0
 /**
  * @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;
 }
コード例 #3
0
 /**
  * @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();
 }