summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-10-08 21:24:05 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-10-08 21:24:05 +0900
commita38e4b0b144eed8b42e6d6c894a00ad3feca40aa (patch)
treeb701762d7170063b6e2a8fc38230c62b6c24a4bd /src
parentuse commander 4.1.1 (diff)
downloadsharkey-a38e4b0b144eed8b42e6d6c894a00ad3feca40aa.tar.gz
sharkey-a38e4b0b144eed8b42e6d6c894a00ad3feca40aa.tar.bz2
sharkey-a38e4b0b144eed8b42e6d6c894a00ad3feca40aa.zip
server: コマンドラインオプション廃止
Resolve #7863 Resolve #6337
Diffstat (limited to 'src')
-rw-r--r--src/argv.ts23
-rw-r--r--src/boot/index.ts8
-rw-r--r--src/boot/master.ts8
-rw-r--r--src/db/postgre.ts4
-rw-r--r--src/env.ts20
-rw-r--r--src/queue/index.ts4
-rw-r--r--src/server/index.ts4
-rw-r--r--src/services/logger.ts8
8 files changed, 38 insertions, 41 deletions
diff --git a/src/argv.ts b/src/argv.ts
deleted file mode 100644
index 106ecf2675..0000000000
--- a/src/argv.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Command } from 'commander';
-import config from '@/config/index';
-
-const program = new Command();
-
-program.version(config.version);
-program.option('--no-daemons', 'Disable daemon processes (for debbuging)');
-program.option('--disable-clustering', 'Disable clustering');
-program.option('--only-server', 'Run server only (without job queue processing)');
-program.option('--only-queue', 'Pocessing job queue only (without server)');
-program.option('--quiet', 'Suppress all logs');
-program.option('--verbose', 'Enable all logs');
-program.option('--with-log-time', 'Include timestamp for each logs');
-program.option('--slow', 'Delay all requests (for debbuging)');
-program.option('--color', 'This option is a dummy for some external program\'s (e.g. forever) issue.');
-program.parse(process.argv);
-
-if (process.env.MK_ONLY_QUEUE) program.onlyQueue = true;
-if (process.env.NODE_ENV === 'test') program.disableClustering = true;
-//if (process.env.NODE_ENV === 'test') program.quiet = true;
-if (process.env.NODE_ENV === 'test') program.noDaemons = true;
-
-export { program };
diff --git a/src/boot/index.ts b/src/boot/index.ts
index 20c53a366c..cb4c8536db 100644
--- a/src/boot/index.ts
+++ b/src/boot/index.ts
@@ -3,7 +3,7 @@ import * as chalk from 'chalk';
import Xev from 'xev';
import Logger from '@/services/logger';
-import { program } from '../argv';
+import { envOption } from '../env';
// for typeorm
import 'reflect-metadata';
@@ -20,7 +20,7 @@ const ev = new Xev();
export default async function() {
process.title = `Misskey (${cluster.isMaster ? 'master' : 'worker'})`;
- if (cluster.isMaster || program.disableClustering) {
+ if (cluster.isMaster || envOption.disableClustering) {
await masterMain();
if (cluster.isMaster) {
@@ -28,7 +28,7 @@ export default async function() {
}
}
- if (cluster.isWorker || program.disableClustering) {
+ if (cluster.isWorker || envOption.disableClustering) {
await workerMain();
}
@@ -60,7 +60,7 @@ cluster.on('exit', worker => {
});
// Display detail of unhandled promise rejection
-if (!program.quiet) {
+if (!envOption.quiet) {
process.on('unhandledRejection', console.dir);
}
diff --git a/src/boot/master.ts b/src/boot/master.ts
index d9cc7c16be..071b37b76d 100644
--- a/src/boot/master.ts
+++ b/src/boot/master.ts
@@ -11,7 +11,7 @@ import Logger from '@/services/logger';
import loadConfig from '@/config/load';
import { Config } from '@/config/types';
import { lessThan } from '@/prelude/array';
-import { program } from '../argv';
+import { envOption } from '../env';
import { showMachineInfo } from '@/misc/show-machine-info';
import { initDb } from '../db/postgre';
@@ -25,7 +25,7 @@ const logger = new Logger('core', 'cyan');
const bootLogger = logger.createSubLogger('boot', 'magenta', false);
function greet() {
- if (!program.quiet) {
+ if (!envOption.quiet) {
//#region Misskey logo
const v = `v${meta.version}`;
console.log(' _____ _ _ ');
@@ -73,13 +73,13 @@ export async function masterMain() {
bootLogger.succ('Misskey initialized');
- if (!program.disableClustering) {
+ if (!envOption.disableClustering) {
await spawnWorkers(config.clusterLimit);
}
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
- if (!program.noDaemons) {
+ if (!envOption.noDaemons) {
require('../daemons/server-stats').default();
require('../daemons/queue-stats').default();
require('../daemons/janitor').default();
diff --git a/src/db/postgre.ts b/src/db/postgre.ts
index 8948f22cdc..0b635ea18e 100644
--- a/src/db/postgre.ts
+++ b/src/db/postgre.ts
@@ -63,7 +63,7 @@ import { Antenna } from '@/models/entities/antenna';
import { AntennaNote } from '@/models/entities/antenna-note';
import { PromoNote } from '@/models/entities/promo-note';
import { PromoRead } from '@/models/entities/promo-read';
-import { program } from '../argv';
+import { envOption } from '../env';
import { Relay } from '@/models/entities/relay';
import { MutedNote } from '@/models/entities/muted-note';
import { Channel } from '@/models/entities/channel';
@@ -84,7 +84,7 @@ class MyCustomLogger implements Logger {
}
public logQuery(query: string, parameters?: any[]) {
- if (program.verbose) {
+ if (envOption.verbose) {
sqlLogger.info(this.highlight(query));
}
}
diff --git a/src/env.ts b/src/env.ts
new file mode 100644
index 0000000000..1b678edc44
--- /dev/null
+++ b/src/env.ts
@@ -0,0 +1,20 @@
+const envOption = {
+ onlyQueue: false,
+ onlyServer: false,
+ noDaemons: false,
+ disableClustering: false,
+ verbose: false,
+ withLogTime: false,
+ quiet: false,
+ slow: false,
+};
+
+for (const key of Object.keys(envOption) as (keyof typeof envOption)[]) {
+ if (process.env['MK_' + key.replace(/[A-Z]/g, letter => `_${letter}`).toUpperCase()]) envOption[key] = true;
+}
+
+if (process.env.NODE_ENV === 'test') envOption.disableClustering = true;
+if (process.env.NODE_ENV === 'test') envOption.quiet = true;
+if (process.env.NODE_ENV === 'test') envOption.noDaemons = true;
+
+export { envOption };
diff --git a/src/queue/index.ts b/src/queue/index.ts
index c787253ded..1e1d5da5a2 100644
--- a/src/queue/index.ts
+++ b/src/queue/index.ts
@@ -1,7 +1,7 @@
import * as httpSignature from 'http-signature';
import config from '@/config/index';
-import { program } from '../argv';
+import { envOption } from '../env';
import processDeliver from './processors/deliver';
import processInbox from './processors/inbox';
@@ -200,7 +200,7 @@ export function createCleanRemoteFilesJob() {
}
export default function() {
- if (!program.onlyServer) {
+ if (!envOption.onlyServer) {
deliverQueue.process(config.deliverJobConcurrency || 128, processDeliver);
inboxQueue.process(config.inboxJobConcurrency || 16, processInbox);
processDb(dbQueue);
diff --git a/src/server/index.ts b/src/server/index.ts
index fb4e48c1c6..c891596140 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -20,7 +20,7 @@ import config from '@/config/index';
import apiServer from './api/index';
import { sum } from '@/prelude/array';
import Logger from '@/services/logger';
-import { program } from '../argv';
+import { envOption } from '../env';
import { UserProfiles, Users } from '@/models/index';
import { networkChart } from '@/services/chart/index';
import { genAvatar } from '@/misc/gen-avatar';
@@ -40,7 +40,7 @@ if (!['production', 'test'].includes(process.env.NODE_ENV || '')) {
}));
// Delay
- if (program.slow) {
+ if (envOption.slow) {
app.use(slow({
delay: 3000
}));
diff --git a/src/services/logger.ts b/src/services/logger.ts
index 229be891e1..8e783e67f6 100644
--- a/src/services/logger.ts
+++ b/src/services/logger.ts
@@ -2,7 +2,7 @@ import * as cluster from 'cluster';
import * as os from 'os';
import * as chalk from 'chalk';
import * as dateformat from 'dateformat';
-import { program } from '../argv';
+import { envOption } from '../env';
import { getRepository } from 'typeorm';
import { Log } from '@/models/entities/log';
import { genId } from '@/misc/gen-id';
@@ -52,7 +52,7 @@ export default class Logger {
}
private log(level: Level, message: string, data?: Record<string, any> | null, important = false, subDomains: Domain[] = [], store = true): void {
- if (program.quiet) return;
+ if (envOption.quiet) return;
if (!this.store) store = false;
if (level === 'debug') store = false;
@@ -80,7 +80,7 @@ export default class Logger {
null;
let log = `${l} ${worker}\t[${domains.join(' ')}]\t${m}`;
- if (program.withLogTime) log = chalk.gray(time) + ' ' + log;
+ if (envOption.withLogTime) log = chalk.gray(time) + ' ' + log;
console.log(important ? chalk.bold(log) : log);
@@ -132,7 +132,7 @@ export default class Logger {
}
public debug(message: string, data?: Record<string, any> | null, important = false): void { // デバッグ用に使う(開発者に必要だが利用者に不要な情報)
- if (process.env.NODE_ENV != 'production' || program.verbose) {
+ if (process.env.NODE_ENV != 'production' || envOption.verbose) {
this.log('debug', message, data, important);
}
}