Source of file CreatePackageJsonTask.php
Size: 2,406 Bytes - Last Modified: 2021-12-23T10:57:05+00:00
/var/www/docs.ssmods.com/process/src/code/task/CreatePackageJsonTask.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | <?php /** * Task for creating new package.json after every 15 Minutes. * * @package extensionmanager */ use Composer\package\Dumper\ArrayDumper; class CreatePackageJsonTask extends QuarterHourlyTask { /** * Check that the user has appropriate permissions to execute this task */ public function init() { if (!Director::is_cli() && !Director::isDev() && !Permission::check('ADMIN')) { return Security::permissionFailure(); } parent::init(); } public function process() { $this->CreatePackageJson(); } public function CreatePackageJson() { $extensionData = ExtensionData::get(); $count = 0; if ($extensionData && !empty($extensionData)) { $count = $extensionData->Count(); $filename = 'packages.json'; $repo = array('packages' => array()); foreach ($extensionData as $extension) { // Include only Approved extensions if ($extension->Accepted == '1') { $json = new JsonHandler($extension->Url); $jsonData = $json->cloneJson(); $packages = $jsonData['AllRelease']; $dumper = new ArrayDumper; foreach ($packages as $package) { $repo['packages'][$package->getPrettyName()][$package->getPrettyVersion()] = $dumper->dump($package); } } } if (!empty($repo['packages'])) { $packagesJsonData = Convert::array2json($repo); $packageJsonFile = fopen(BASE_PATH.DIRECTORY_SEPARATOR.$filename, 'w'); fwrite($packageJsonFile, $packagesJsonData); fclose($packageJsonFile); echo "<br /><br /><strong> package.json file created successfully...</strong><br />"; } else { throw new InvalidArgumentException('package.json file could not be created'); } } } } /** * For Manually Updating packages.json file. * * @package extensionmanager */ class CreatePackageJsonTask_Manual extends BuildTask { public function run($request) { echo "Running Package.json Update task - Recreating package.json file\n\n"; $update = new CreatePackageJsonTask(); $update->process(); } } |