実行時にpackage.jsonを参照しないように (#5418)

* 実行時にpackage.jsonを参照しないように

* nodeinfo

* move meta.json

* add dummy

* lowercase
This commit is contained in:
MeiMei 2019-11-01 22:34:26 +09:00 committed by syuilo
parent 6a19b3dff2
commit 5577473af5
10 changed files with 43 additions and 62 deletions

View File

@ -96,7 +96,7 @@ gulp.task('cleanall', gulp.parallel('clean', cb =>
));
gulp.task('build:client:script', () => {
const client = require('./built/client/meta.json');
const client = require('./built/meta.json');
return gulp.src(['./src/client/app/boot.js', './src/client/app/safe.js'])
.pipe(replace('VERSION', JSON.stringify(client.version)))
.pipe(replace('ENV', JSON.stringify(env)))

View File

@ -1,8 +1,8 @@
import * as program from 'commander';
import * as pkg from '../package.json';
import config from './config';
program
.version(pkg.version)
.version(config.version)
.option('--no-daemons', 'Disable daemon processes (for debbuging)')
.option('--disable-clustering', 'Disable clustering')
.option('--only-server', 'Run server only (without job queue processing)')

View File

@ -8,7 +8,6 @@ import Logger from '../services/logger';
import loadConfig from '../config/load';
import { Config } from '../config/types';
import { lessThan } from '../prelude/array';
import * as pkg from '../../package.json';
import { program } from '../argv';
import { showMachineInfo } from '../misc/show-machine-info';
import { initDb } from '../db/postgre';
@ -16,10 +15,10 @@ import { initDb } from '../db/postgre';
const logger = new Logger('core', 'cyan');
const bootLogger = logger.createSubLogger('boot', 'magenta', false);
function greet() {
function greet(config: Config) {
if (!program.quiet) {
//#region Misskey logo
const v = `v${pkg.version}`;
const v = `v${config.version}`;
console.log(' _____ _ _ ');
console.log(' | |_|___ ___| |_ ___ _ _ ');
console.log(' | | | | |_ -|_ -| \'_| -_| | |');
@ -35,21 +34,21 @@ function greet() {
}
bootLogger.info('Welcome to Misskey!');
bootLogger.info(`Misskey v${pkg.version}`, null, true);
bootLogger.info(`Misskey v${config.version}`, null, true);
}
/**
* Init master process
*/
export async function masterMain() {
greet();
let config!: Config;
try {
// initialize app
config = await init();
greet(config);
if (config.port == null || Number.isNaN(config.port)) {
bootLogger.error('The port is not configured. Please configure port.', null, true);
process.exit(1);

View File

@ -5,7 +5,7 @@
import * as fs from 'fs';
import * as yaml from 'js-yaml';
import { Source, Mixin } from './types';
import * as pkg from '../../package.json';
import * as meta from '../meta.json';
/**
* Path of configuration directory
@ -30,6 +30,7 @@ export default function load() {
config.port = config.port || parseInt(process.env.PORT || '', 10);
mixin.version = meta.version;
mixin.host = url.host;
mixin.hostname = url.hostname;
mixin.scheme = url.protocol.replace(/:$/, '');
@ -38,7 +39,7 @@ export default function load() {
mixin.apiUrl = `${mixin.scheme}://${mixin.host}/api`;
mixin.authUrl = `${mixin.scheme}://${mixin.host}/auth`;
mixin.driveUrl = `${mixin.scheme}://${mixin.host}/files`;
mixin.userAgent = `Misskey/${pkg.version} (${config.url})`;
mixin.userAgent = `Misskey/${meta.version} (${config.url})`;
if (config.autoAdmin == null) config.autoAdmin = false;

View File

@ -58,6 +58,7 @@ export type Source = {
* Misskeyが自動的に()
*/
export type Mixin = {
version: string;
host: string;
hostname: string;
scheme: string;

3
src/meta.json Normal file
View File

@ -0,0 +1,3 @@
{
"version": "unknown"
}

View File

@ -3,7 +3,6 @@ import * as os from 'os';
import config from '../../../config';
import define from '../define';
import { fetchMeta } from '../../../misc/fetch-meta';
import * as pkg from '../../../../package.json';
import { Emojis } from '../../../models';
import { getConnection } from 'typeorm';
import redis from '../../../db/redis';
@ -36,7 +35,7 @@ export const meta = {
type: 'string' as const,
optional: false as const, nullable: false as const,
description: 'The version of Misskey of this instance.',
example: pkg.version
example: config.version
},
name: {
type: 'string' as const,
@ -114,7 +113,7 @@ export default define(meta, async (ps, me) => {
maintainerName: instance.maintainerName,
maintainerEmail: instance.maintainerEmail,
version: pkg.version,
version: config.version,
name: instance.name,
uri: config.url,

View File

@ -2,7 +2,6 @@ import * as Router from '@koa/router';
import config from '../config';
import { fetchMeta } from '../misc/fetch-meta';
// import User from '../models/user';
import { name as softwareName, version, repository } from '../../package.json';
// import Note from '../models/note';
const router = new Router();
@ -20,27 +19,7 @@ export const links = [/* (awaiting release) {
const nodeinfo2 = async () => {
const [
{
name,
description,
maintainerName,
maintainerEmail,
langs,
ToSUrl,
repositoryUrl,
feedbackUrl,
announcements,
disableRegistration,
disableLocalTimeline,
disableGlobalTimeline,
enableRecaptcha,
maxNoteTextLength,
enableTwitterIntegration,
enableGithubIntegration,
enableDiscordIntegration,
enableEmail,
enableServiceWorker
},
meta,
// total,
// activeHalfyear,
// activeMonth,
@ -57,43 +36,43 @@ const nodeinfo2 = async () => {
return {
software: {
name: softwareName,
version,
repository: repository.url
name: 'misskey',
version: config.version,
repository: meta.repositoryUrl,
},
protocols: ['activitypub'],
services: {
inbound: [] as string[],
outbound: ['atom1.0', 'rss2.0']
},
openRegistrations: !disableRegistration,
openRegistrations: !meta.disableRegistration,
usage: {
users: {} // { total, activeHalfyear, activeMonth },
// localPosts,
// localComments
},
metadata: {
name,
description,
name: meta.name,
description: meta.description,
maintainer: {
name: maintainerName,
email: maintainerEmail
name: meta.maintainerName,
email: meta.maintainerEmail
},
langs,
ToSUrl,
repositoryUrl,
feedbackUrl,
announcements,
disableRegistration,
disableLocalTimeline,
disableGlobalTimeline,
enableRecaptcha,
maxNoteTextLength,
enableTwitterIntegration,
enableGithubIntegration,
enableDiscordIntegration,
enableEmail,
enableServiceWorker
langs: meta.langs,
ToSUrl: meta.ToSUrl,
repositoryUrl: meta.repositoryUrl,
feedbackUrl: meta.feedbackUrl,
announcements: meta.announcements,
disableRegistration: meta.disableRegistration,
disableLocalTimeline: meta.disableLocalTimeline,
disableGlobalTimeline: meta.disableGlobalTimeline,
enableRecaptcha: meta.enableRecaptcha,
maxNoteTextLength: meta.maxNoteTextLength,
enableTwitterIntegration: meta.enableTwitterIntegration,
enableGithubIntegration: meta.enableGithubIntegration,
enableDiscordIntegration: meta.enableDiscordIntegration,
enableEmail: meta.enableEmail,
enableServiceWorker: meta.enableServiceWorker
}
};
};

View File

@ -13,7 +13,6 @@ import * as views from 'koa-views';
import docs from './docs';
import packFeed from './feed';
import { fetchMeta } from '../../misc/fetch-meta';
import * as pkg from '../../../package.json';
import { genOpenapiSpec } from '../api/openapi/gen-spec';
import config from '../../config';
import { Users, Notes, Emojis, UserProfiles, Pages } from '../../models';
@ -257,7 +256,7 @@ router.get('/info', async ctx => {
where: { host: null }
});
await ctx.render('info', {
version: pkg.version,
version: config.version,
machine: os.hostname(),
os: os.platform(),
node: process.version,

View File

@ -130,7 +130,7 @@ module.exports = {
'process.env.NODE_ENV': JSON.stringify(isProduction ? 'production' : 'development')
}),
new WebpackOnBuildPlugin((stats: any) => {
fs.writeFileSync('./built/client/meta.json', JSON.stringify({ version: meta.version }), 'utf-8');
fs.writeFileSync('./built/meta.json', JSON.stringify({ version: meta.version }), 'utf-8');
fs.mkdirSync('./built/client/assets/locales', { recursive: true });