mirror of
https://github.com/flarum/core.git
synced 2025-07-27 19:50:20 +02:00
[untested] Major Update handler (#1)
This commit is contained in:
48
extensions/package-manager/js/dist/admin.js
vendored
48
extensions/package-manager/js/dist/admin.js
vendored
@@ -343,6 +343,11 @@ __webpack_require__.r(__webpack_exports__);
|
|||||||
/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3__);
|
/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3__);
|
||||||
/* harmony import */ var flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/components/Tooltip */ "flarum/common/components/Tooltip");
|
/* harmony import */ var flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/components/Tooltip */ "flarum/common/components/Tooltip");
|
||||||
/* harmony import */ var flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_4__);
|
/* harmony import */ var flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_4__);
|
||||||
|
/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/admin/components/LoadingModal */ "flarum/admin/components/LoadingModal");
|
||||||
|
/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5__);
|
||||||
|
/* harmony import */ var _utils_errorHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/errorHandler */ "./src/admin/utils/errorHandler.ts");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -353,7 +358,15 @@ var MajorUpdater = /*#__PURE__*/function (_Component) {
|
|||||||
Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(MajorUpdater, _Component);
|
Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(MajorUpdater, _Component);
|
||||||
|
|
||||||
function MajorUpdater() {
|
function MajorUpdater() {
|
||||||
return _Component.apply(this, arguments) || this;
|
var _this;
|
||||||
|
|
||||||
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
||||||
|
args[_key] = arguments[_key];
|
||||||
|
}
|
||||||
|
|
||||||
|
_this = _Component.call.apply(_Component, [this].concat(args)) || this;
|
||||||
|
_this.isLoading = null;
|
||||||
|
return _this;
|
||||||
}
|
}
|
||||||
|
|
||||||
var _proto = MajorUpdater.prototype;
|
var _proto = MajorUpdater.prototype;
|
||||||
@@ -374,13 +387,40 @@ var MajorUpdater = /*#__PURE__*/function (_Component) {
|
|||||||
text: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('sycho-package-manager.admin.major_updater.dry_run_help')
|
text: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('sycho-package-manager.admin.major_updater.dry_run_help')
|
||||||
}, m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default.a, {
|
}, m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default.a, {
|
||||||
className: "Button",
|
className: "Button",
|
||||||
icon: "fas fa-vial"
|
icon: "fas fa-vial",
|
||||||
|
onclick: this.update.bind(this, true)
|
||||||
}, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('sycho-package-manager.admin.major_updater.dry_run'))), m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default.a, {
|
}, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('sycho-package-manager.admin.major_updater.dry_run'))), m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default.a, {
|
||||||
className: "Button",
|
className: "Button",
|
||||||
icon: "fas fa-play"
|
icon: "fas fa-play",
|
||||||
|
onclick: this.update.bind(this, false)
|
||||||
}, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('sycho-package-manager.admin.major_updater.update'))));
|
}, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('sycho-package-manager.admin.major_updater.update'))));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
_proto.update = function update(dryRun) {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
this.isLoading = "update-" + (dryRun ? 'dry-run' : 'run');
|
||||||
|
flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.modal.show(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5___default.a);
|
||||||
|
flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.request({
|
||||||
|
method: 'POST',
|
||||||
|
url: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.forum.attribute('apiUrl') + "/package-manager/major-update",
|
||||||
|
body: {
|
||||||
|
data: {
|
||||||
|
dryRun: dryRun
|
||||||
|
}
|
||||||
|
},
|
||||||
|
errorHandler: _utils_errorHandler__WEBPACK_IMPORTED_MODULE_6__["default"]
|
||||||
|
}).then(function () {
|
||||||
|
flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.alerts.show({
|
||||||
|
type: 'success'
|
||||||
|
}, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('sycho-package-manager.admin.update_successful'));
|
||||||
|
window.location.reload();
|
||||||
|
})["finally"](function () {
|
||||||
|
_this2.isLoading = null;
|
||||||
|
m.redraw();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return MajorUpdater;
|
return MajorUpdater;
|
||||||
}(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default.a);
|
}(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default.a);
|
||||||
|
|
||||||
@@ -605,7 +645,7 @@ var Updater = /*#__PURE__*/function (_Component) {
|
|||||||
}).then(function () {
|
}).then(function () {
|
||||||
flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.alerts.show({
|
flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.alerts.show({
|
||||||
type: 'success'
|
type: 'success'
|
||||||
}, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('sycho-package-manager.admin.updater.minor_update_successful'));
|
}, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('sycho-package-manager.admin.update_successful'));
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
})["finally"](function () {
|
})["finally"](function () {
|
||||||
_this4.isLoading = null;
|
_this4.isLoading = null;
|
||||||
|
File diff suppressed because one or more lines are too long
@@ -4,12 +4,16 @@ import Mithril from 'mithril';
|
|||||||
import Button from 'flarum/common/components/Button';
|
import Button from 'flarum/common/components/Button';
|
||||||
import Tooltip from 'flarum/common/components/Tooltip';
|
import Tooltip from 'flarum/common/components/Tooltip';
|
||||||
import { UpdatedPackage } from './Updater';
|
import { UpdatedPackage } from './Updater';
|
||||||
|
import LoadingModal from 'flarum/admin/components/LoadingModal';
|
||||||
|
import errorHandler from '../utils/errorHandler';
|
||||||
|
|
||||||
interface MajorUpdaterAttrs extends ComponentAttrs {
|
interface MajorUpdaterAttrs extends ComponentAttrs {
|
||||||
coreUpdate: UpdatedPackage;
|
coreUpdate: UpdatedPackage;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class MajorUpdater<T extends MajorUpdaterAttrs = MajorUpdaterAttrs> extends Component<T> {
|
export default class MajorUpdater<T extends MajorUpdaterAttrs = MajorUpdaterAttrs> extends Component<T> {
|
||||||
|
isLoading: string | null = null;
|
||||||
|
|
||||||
view(vnode: Mithril.Vnode<ComponentAttrs, this>): Mithril.Children {
|
view(vnode: Mithril.Vnode<ComponentAttrs, this>): Mithril.Children {
|
||||||
return (
|
return (
|
||||||
<div className="Form-group PackageManager-majorUpdate">
|
<div className="Form-group PackageManager-majorUpdate">
|
||||||
@@ -18,15 +22,38 @@ export default class MajorUpdater<T extends MajorUpdaterAttrs = MajorUpdaterAttr
|
|||||||
<p className="helpText">{app.translator.trans('sycho-package-manager.admin.major_updater.description')}</p>
|
<p className="helpText">{app.translator.trans('sycho-package-manager.admin.major_updater.description')}</p>
|
||||||
<div className="PackageManager-updaterControls">
|
<div className="PackageManager-updaterControls">
|
||||||
<Tooltip text={app.translator.trans('sycho-package-manager.admin.major_updater.dry_run_help')}>
|
<Tooltip text={app.translator.trans('sycho-package-manager.admin.major_updater.dry_run_help')}>
|
||||||
<Button className="Button" icon="fas fa-vial">
|
<Button className="Button" icon="fas fa-vial" onclick={this.update.bind(this, true)}>
|
||||||
{app.translator.trans('sycho-package-manager.admin.major_updater.dry_run')}
|
{app.translator.trans('sycho-package-manager.admin.major_updater.dry_run')}
|
||||||
</Button>
|
</Button>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Button className="Button" icon="fas fa-play">
|
<Button className="Button" icon="fas fa-play" onclick={this.update.bind(this, false)}>
|
||||||
{app.translator.trans('sycho-package-manager.admin.major_updater.update')}
|
{app.translator.trans('sycho-package-manager.admin.major_updater.update')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
update(dryRun: boolean) {
|
||||||
|
this.isLoading = `update-${dryRun ? 'dry-run' : 'run'}`;
|
||||||
|
app.modal.show(LoadingModal);
|
||||||
|
|
||||||
|
app
|
||||||
|
.request({
|
||||||
|
method: 'POST',
|
||||||
|
url: `${app.forum.attribute('apiUrl')}/package-manager/major-update`,
|
||||||
|
body: {
|
||||||
|
data: { dryRun },
|
||||||
|
},
|
||||||
|
errorHandler,
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.update_successful'));
|
||||||
|
window.location.reload();
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
this.isLoading = null;
|
||||||
|
m.redraw();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -195,7 +195,7 @@ export default class Updater extends Component {
|
|||||||
errorHandler,
|
errorHandler,
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.updater.minor_update_successful'));
|
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.update_successful'));
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
@@ -34,7 +34,8 @@ sycho-package-manager:
|
|||||||
flarum: Flarum Core
|
flarum: Flarum Core
|
||||||
global_update_successful: Successfully updated all packages.
|
global_update_successful: Successfully updated all packages.
|
||||||
last_update_checked_at: "Last Update Check: "
|
last_update_checked_at: "Last Update Check: "
|
||||||
minor_update_successful: Flarum successfully updated.
|
|
||||||
run_global_update: Run Global Update
|
run_global_update: Run Global Update
|
||||||
updater_title: Updates
|
updater_title: Updates
|
||||||
updater_help: Runs a check for new extension and Flarum updates.
|
updater_help: Runs a check for new extension and Flarum updates.
|
||||||
|
|
||||||
|
update_successful: Flarum successfully updated.
|
||||||
|
41
extensions/package-manager/src/Api/Controller/MajorUpdateController.php
Executable file
41
extensions/package-manager/src/Api/Controller/MajorUpdateController.php
Executable file
@@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace SychO\PackageManager\Api\Controller;
|
||||||
|
|
||||||
|
use Flarum\Bus\Dispatcher;
|
||||||
|
use Flarum\Http\RequestUtil;
|
||||||
|
use Laminas\Diactoros\Response\EmptyResponse;
|
||||||
|
use Psr\Http\Message\ResponseInterface;
|
||||||
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
use SychO\PackageManager\Command\MajorUpdate;
|
||||||
|
|
||||||
|
class MajorUpdateController implements RequestHandlerInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var Dispatcher
|
||||||
|
*/
|
||||||
|
protected $bus;
|
||||||
|
|
||||||
|
public function __construct(Dispatcher $bus)
|
||||||
|
{
|
||||||
|
$this->bus = $bus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle(ServerRequestInterface $request): ResponseInterface
|
||||||
|
{
|
||||||
|
$actor = RequestUtil::getActor($request);
|
||||||
|
$dryRun = (bool) (int) Arr::get($request->getParsedBody(), 'data.dryRun');
|
||||||
|
|
||||||
|
$this->bus->dispatch(
|
||||||
|
new MajorUpdate($actor, $dryRun)
|
||||||
|
);
|
||||||
|
|
||||||
|
return new EmptyResponse();
|
||||||
|
}
|
||||||
|
}
|
@@ -27,9 +27,6 @@ class UpdateExtensionController implements RequestHandlerInterface
|
|||||||
$this->bus = $bus;
|
$this->bus = $bus;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @throws \Flarum\User\Exception\PermissionDeniedException
|
|
||||||
*/
|
|
||||||
public function handle(ServerRequestInterface $request): ResponseInterface
|
public function handle(ServerRequestInterface $request): ResponseInterface
|
||||||
{
|
{
|
||||||
$actor = RequestUtil::getActor($request);
|
$actor = RequestUtil::getActor($request);
|
||||||
|
24
extensions/package-manager/src/Command/MajorUpdate.php
Normal file
24
extensions/package-manager/src/Command/MajorUpdate.php
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace SychO\PackageManager\Command;
|
||||||
|
|
||||||
|
use Flarum\User\User;
|
||||||
|
|
||||||
|
class MajorUpdate
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var \Flarum\User\User
|
||||||
|
*/
|
||||||
|
public $actor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
public $dryRun;
|
||||||
|
|
||||||
|
public function __construct(User $actor, bool $dryRun)
|
||||||
|
{
|
||||||
|
$this->actor = $actor;
|
||||||
|
$this->dryRun = $dryRun;
|
||||||
|
}
|
||||||
|
}
|
152
extensions/package-manager/src/Command/MajorUpdateHandler.php
Normal file
152
extensions/package-manager/src/Command/MajorUpdateHandler.php
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace SychO\PackageManager\Command;
|
||||||
|
|
||||||
|
use Composer\Console\Application;
|
||||||
|
use Flarum\Foundation\Paths;
|
||||||
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
use SychO\PackageManager\Event\FlarumUpdated;
|
||||||
|
use SychO\PackageManager\Exception\ComposerUpdateFailedException;
|
||||||
|
use SychO\PackageManager\LastUpdateCheck;
|
||||||
|
use SychO\PackageManager\OutputLogger;
|
||||||
|
use Symfony\Component\Console\Input\ArrayInput;
|
||||||
|
use Symfony\Component\Console\Output\BufferedOutput;
|
||||||
|
|
||||||
|
class MajorUpdateHandler
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var Application
|
||||||
|
*/
|
||||||
|
protected $composer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var LastUpdateCheck
|
||||||
|
*/
|
||||||
|
protected $lastUpdateCheck;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Dispatcher
|
||||||
|
*/
|
||||||
|
protected $events;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var OutputLogger
|
||||||
|
*/
|
||||||
|
protected $logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Paths
|
||||||
|
*/
|
||||||
|
protected $paths;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $composerJson;
|
||||||
|
|
||||||
|
public function __construct(Application $composer, LastUpdateCheck $lastUpdateCheck, Dispatcher $events, OutputLogger $logger, Paths $paths)
|
||||||
|
{
|
||||||
|
$this->composer = $composer;
|
||||||
|
$this->lastUpdateCheck = $lastUpdateCheck;
|
||||||
|
$this->events = $events;
|
||||||
|
$this->logger = $logger;
|
||||||
|
$this->paths = $paths;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the version constraint for all directly required packages in the root composer.json to *.
|
||||||
|
* Set flarum/core version constraint to new major version.
|
||||||
|
* Run composer update --prefer-dist --no-plugins --no-dev -a --with-all-dependencies.
|
||||||
|
* Clear cache.
|
||||||
|
* Run migrations.
|
||||||
|
*
|
||||||
|
* @throws \Flarum\User\Exception\PermissionDeniedException
|
||||||
|
* @throws ComposerUpdateFailedException
|
||||||
|
*/
|
||||||
|
public function handle(MajorUpdate $command)
|
||||||
|
{
|
||||||
|
$command->actor->assertAdmin();
|
||||||
|
|
||||||
|
$majorVersion = $this->getNewMajorVersion();
|
||||||
|
|
||||||
|
if (! $majorVersion) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->updateComposerJson($majorVersion);
|
||||||
|
|
||||||
|
$this->runCommand($command->dryRun);
|
||||||
|
|
||||||
|
if ($command->dryRun) {
|
||||||
|
$this->revertComposerJson();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->lastUpdateCheck->forget('flarum/*', true);
|
||||||
|
|
||||||
|
$this->events->dispatch(
|
||||||
|
new FlarumUpdated(FlarumUpdated::MAJOR)
|
||||||
|
);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getNewMajorVersion(): ?string
|
||||||
|
{
|
||||||
|
$core = Arr::first($this->lastUpdateCheck->get()['updates']['installed'], function ($package) {
|
||||||
|
return $package['name'] === 'flarum/core';
|
||||||
|
});
|
||||||
|
|
||||||
|
return $core ? $core['latest-major'] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function updateComposerJson(string $majorVersion): void
|
||||||
|
{
|
||||||
|
$composerJsonPath = $this->paths->base . '/composer.json';
|
||||||
|
$this->composerJson = $newComposerJson = json_decode(file_get_contents($composerJsonPath), true);
|
||||||
|
|
||||||
|
foreach ($newComposerJson['require'] as $name => &$version) {
|
||||||
|
if ($name === 'flarum/core') {
|
||||||
|
$version = '^'.str_replace('v', '', $majorVersion);
|
||||||
|
} else {
|
||||||
|
$version = '*';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
file_put_contents($composerJsonPath, json_encode($newComposerJson));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function revertComposerJson(): void
|
||||||
|
{
|
||||||
|
$composerJsonPath = $this->paths->base . '/composer.json';
|
||||||
|
file_put_contents($composerJsonPath, $this->composerJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws ComposerUpdateFailedException
|
||||||
|
*/
|
||||||
|
protected function runCommand(bool $dryRun): void
|
||||||
|
{
|
||||||
|
$output = new BufferedOutput();
|
||||||
|
$input = new ArrayInput([
|
||||||
|
'command' => 'update',
|
||||||
|
'--prefer-dist' => true,
|
||||||
|
'--no-plugins' => true,
|
||||||
|
'--no-dev' => true,
|
||||||
|
'-a' => true,
|
||||||
|
'--with-all-dependencies' => true,
|
||||||
|
'--dry-run' => $dryRun,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$exitCode = $this->composer->run($input, $output);
|
||||||
|
$output = $output->fetch();
|
||||||
|
|
||||||
|
$this->logger->log($input->__toString(), $output, $exitCode);
|
||||||
|
|
||||||
|
if ($exitCode !== 0) {
|
||||||
|
throw new ComposerUpdateFailedException('*', $output);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -9,6 +9,7 @@ namespace SychO\PackageManager\Listener;
|
|||||||
use Composer\Command\ClearCacheCommand;
|
use Composer\Command\ClearCacheCommand;
|
||||||
use Flarum\Database\Console\MigrateCommand;
|
use Flarum\Database\Console\MigrateCommand;
|
||||||
use Flarum\Foundation\Console\AssetsPublishCommand;
|
use Flarum\Foundation\Console\AssetsPublishCommand;
|
||||||
|
use SychO\PackageManager\Event\FlarumUpdated;
|
||||||
use Symfony\Component\Console\Input\ArrayInput;
|
use Symfony\Component\Console\Input\ArrayInput;
|
||||||
use Symfony\Component\Console\Output\NullOutput;
|
use Symfony\Component\Console\Output\NullOutput;
|
||||||
|
|
||||||
@@ -39,7 +40,7 @@ class PostUpdateListener
|
|||||||
/**
|
/**
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function handle($event)
|
public function handle(FlarumUpdated $event)
|
||||||
{
|
{
|
||||||
$this->clearCache->run(new ArrayInput([]), new NullOutput());
|
$this->clearCache->run(new ArrayInput([]), new NullOutput());
|
||||||
$this->migrate->run(new ArrayInput([]), new NullOutput());
|
$this->migrate->run(new ArrayInput([]), new NullOutput());
|
||||||
|
Reference in New Issue
Block a user