forked from mirrors/misskey
サーバー管理コマンド (#15882)
* wip * Update cli.ts * Update cli.ts * wip * Update CHANGELOG.md * Delete cli.mjs
This commit is contained in:
49
packages/backend/src/boot/cli.ts
Normal file
49
packages/backend/src/boot/cli.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import 'reflect-metadata';
|
||||
import { EventEmitter } from 'node:events';
|
||||
import { NestFactory } from '@nestjs/core';
|
||||
import { CommandModule } from '@/cli/CommandModule.js';
|
||||
import { NestLogger } from '@/NestLogger.js';
|
||||
import { CommandService } from '@/cli/CommandService.js';
|
||||
|
||||
process.title = 'Misskey Cli';
|
||||
|
||||
Error.stackTraceLimit = Infinity;
|
||||
EventEmitter.defaultMaxListeners = 128;
|
||||
|
||||
const app = await NestFactory.createApplicationContext(CommandModule, {
|
||||
logger: new NestLogger(),
|
||||
});
|
||||
|
||||
const commandService = app.get(CommandService);
|
||||
|
||||
const command = process.argv[2] ?? 'help';
|
||||
|
||||
switch (command) {
|
||||
case 'help': {
|
||||
console.log('Available commands:');
|
||||
console.log(' help - Displays this help message');
|
||||
console.log(' reset-captcha - Resets the captcha');
|
||||
break;
|
||||
}
|
||||
case 'ping': {
|
||||
await commandService.ping();
|
||||
break;
|
||||
}
|
||||
case 'reset-captcha': {
|
||||
await commandService.resetCaptcha();
|
||||
console.log('Captcha has been reset.');
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
console.error(`Unrecognized command: ${command}`);
|
||||
console.error('Use "help" to see available commands.');
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
process.exit(0);
|
||||
23
packages/backend/src/cli/CommandModule.ts
Normal file
23
packages/backend/src/cli/CommandModule.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import { Module } from '@nestjs/common';
|
||||
import { CoreModule } from '@/core/CoreModule.js';
|
||||
import { GlobalModule } from '@/GlobalModule.js';
|
||||
import { CommandService } from './CommandService.js';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
GlobalModule,
|
||||
CoreModule,
|
||||
],
|
||||
providers: [
|
||||
CommandService,
|
||||
],
|
||||
exports: [
|
||||
CommandService,
|
||||
],
|
||||
})
|
||||
export class CommandModule {}
|
||||
49
packages/backend/src/cli/CommandService.ts
Normal file
49
packages/backend/src/cli/CommandService.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
import type { Config } from '@/config.js';
|
||||
import { DI } from '@/di-symbols.js';
|
||||
import type Logger from '@/logger.js';
|
||||
import { bindThis } from '@/decorators.js';
|
||||
import { MetaService } from '@/core/MetaService.js';
|
||||
|
||||
@Injectable()
|
||||
export class CommandService {
|
||||
private logger: Logger;
|
||||
|
||||
constructor(
|
||||
@Inject(DI.config)
|
||||
private config: Config,
|
||||
|
||||
private metaService: MetaService,
|
||||
) {
|
||||
}
|
||||
|
||||
@bindThis
|
||||
public async ping() {
|
||||
console.log('pong');
|
||||
}
|
||||
|
||||
@bindThis
|
||||
public async resetCaptcha() {
|
||||
await this.metaService.update({
|
||||
enableHcaptcha: false,
|
||||
hcaptchaSiteKey: null,
|
||||
hcaptchaSecretKey: null,
|
||||
enableMcaptcha: false,
|
||||
mcaptchaSitekey: null,
|
||||
mcaptchaSecretKey: null,
|
||||
mcaptchaInstanceUrl: null,
|
||||
enableRecaptcha: false,
|
||||
recaptchaSiteKey: null,
|
||||
recaptchaSecretKey: null,
|
||||
enableTurnstile: false,
|
||||
turnstileSiteKey: null,
|
||||
turnstileSecretKey: null,
|
||||
enableTestcaptcha: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user