From 318530da0003df65a8aeac77ff417ae17dede5cd Mon Sep 17 00:00:00 2001 From: Michel Roux Date: Mon, 3 Jul 2023 16:17:00 +0200 Subject: [PATCH] Auto enable gpoddersync --- Dockerfile | 5 +++-- lib/AppInfo/Application.php | 25 ++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 621c6fb..37c877e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,8 @@ RUN curl -sSLo /tmp/gpoddersync.tar.gz https://github.com/thrillfall/nextcloud-g rm /tmp/gpoddersync.tar.gz && \ cd apps/repod && make build && cd - && \ php occ app:enable gpoddersync repod && \ - php occ config:system:set debug --value=true && \ - php occ config:system:set memcache.local --value=none + php occ config:system:set debug --value=true USER root + +RUN rm -f /usr/local/etc/php/conf.d/opcache-recommended.ini diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index cbf10a1..281ce06 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -4,13 +4,36 @@ declare(strict_types=1); namespace OCA\RePod\AppInfo; +use OCP\App\IAppManager; use OCP\AppFramework\App; +use OCP\AppFramework\Bootstrap\IBootContext; +use OCP\AppFramework\Bootstrap\IBootstrap; +use OCP\AppFramework\Bootstrap\IRegistrationContext; +use OCP\IUserSession; -class Application extends App +class Application extends App implements IBootstrap { public const APP_ID = 'repod'; + private const GPODDERSYNC_ID = 'gpoddersync'; public function __construct() { parent::__construct(self::APP_ID); } + + public function boot(IBootContext $context): void { + /** @psalm-suppress DeprecatedInterface */ + $appContainer = $context->getAppContainer(); + /** @var IAppManager $appManager */ + $appManager = $appContainer->get(IAppManager::class); + /** @var IUserSession $userSession */ + $userSession = $appContainer->get(IUserSession::class); + + $gpoddersync = $appManager->isEnabledForUser(self::GPODDERSYNC_ID, $userSession->getUser()); + if (!$gpoddersync) { + $appManager->enableApp(self::GPODDERSYNC_ID); + } + } + + public function register(IRegistrationContext $context): void { + } }