Source of file AddVendorExposeDataToComposer.php
Size: 2,210 Bytes - Last Modified: 2020-07-03T12:08:09+00:00
/var/www/docs.ssmods.com/process/src/src/Tasks/IndividualTasks/AddVendorExposeDataToComposer.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | <?php namespace Sunnysideup\UpgradeToSilverstripe4\Tasks\IndividualTasks; use Sunnysideup\UpgradeToSilverstripe4\Tasks\Helpers\ComposerJsonFixes; use Sunnysideup\UpgradeToSilverstripe4\Tasks\Task; /** * Updates the composer requirements to reflect the new version and package names * in the composer file of your module */ class AddVendorExposeDataToComposer extends Task { protected $taskStep = 's50'; protected $toExpose = [ 'javascript', 'images', 'img', 'css', 'fonts', 'js', 'client/javascript', 'client/images', 'client/img', 'client/css', 'client/fonts', 'client/js', ]; public function getTitle() { return 'Adds vendor expose data to composer'; } public function getDescription() { return ' By default we expose all the client related files (images, css and javascript)'; } public function runActualTask($params = []) { $expose = []; foreach ($this->mu()->getExistingModuleDirLocations() as $moduleDir) { foreach ($this->toExpose as $folder) { if (file_exists($moduleDir . '/' . $folder)) { if ($this->mu()->getIsModuleUpgrade()) { //expose "javascript" $expose[] = $folder; } else { //expose "app/javascript" $expose[] = basename($moduleDir) . '/' . $folder; } } } } if (count($expose)) { $command = 'if(!isset($data["extra"]["expose"])) { ' . ' $data["extra"]["expose"] = ["' . implode('", "', $expose) . '"]; ' . '}'; ComposerJsonFixes::inst($this->mu())->UpdateJSONViaCommandLine( $this->mu()->getGitRootDir(), $command, 'exposing: ' . implode(', ', $expose) ); $this->setCommitMessage('MAJOR: exposing folders' . implode(',', $expose)); } } protected function hasCommitAndPush() { return true; } } |