/** * Get a local power * * @param object $path The repository path details * @param string $guid The global unique id of the power * * @return object|null * @since 3.2.0 */ private function getLocal(object $path, string $guid): ?object { if (empty($path->local->{$guid}->settings)) { return null; } // get the settings if (($settings = FileHelper::getContent($path->full_path . '/' . $path->local->{$guid}->settings, null)) !== null && JsonHelper::check($settings)) { $power = json_decode($settings); if (isset($power->guid)) { return $power; } } return null; } /** * Get a remote power * * @param object $path The repository path details * @param string $guid The global unique id of the power * * @return object|null * @since 3.2.0 */ private function getRemote(object $path, string $guid): ?object { if (empty($path->index->{$guid}->settings)) { return null; } // get the settings if (($power = $this->loadRemoteFile($path->owner, $path->repo, $path->index->{$guid}->settings, $path->branch)) !== null && isset($power->guid)) { return $power; } return null; } /** * Load the local repository index of powers * * @param object $path The repository path details * * @return void * @since 3.2.0 */ private function localIndex(object &$path) { if (isset($path->local) || !isset($path->full_path)) { return; } if (($content = FileHelper::getContent($path->full_path . '/joomla-powers.json', null)) !== null && JsonHelper::check($content)) { $path->local = json_decode($content); return; } $path->local = null; } /** * Load the remote repository index of powers * * @param object $path The repository path details * * @return void * @since 3.2.0 */ private function remoteIndex(object &$path) { if (isset($path->index)) { return; } try { $path->index = $this->contents->get($path->owner, $path->repo, 'joomla-powers.json', $path->branch); } catch (\Exception $e) { $this->app->enqueueMessage( Text::sprintf('

Super Power repository at %s/%s gave the following error!
%s

', $this->contents->api(), $path->path, $e->getMessage()), 'Error' ); $path->index = null; } }