実行時にpackage.jsonを参照しないように (#5418)
* 実行時にpackage.jsonを参照しないように * nodeinfo * move meta.json * add dummy * lowercase
This commit is contained in:
		
							parent
							
								
									5b0dfa6130
								
							
						
					
					
						commit
						92af4401e2
					
				
					 10 changed files with 43 additions and 62 deletions
				
			
		|  | @ -96,7 +96,7 @@ gulp.task('cleanall', gulp.parallel('clean', cb => | ||||||
| )); | )); | ||||||
| 
 | 
 | ||||||
| gulp.task('build:client:script', () => { | 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']) | 	return gulp.src(['./src/client/app/boot.js', './src/client/app/safe.js']) | ||||||
| 		.pipe(replace('VERSION', JSON.stringify(client.version))) | 		.pipe(replace('VERSION', JSON.stringify(client.version))) | ||||||
| 		.pipe(replace('ENV', JSON.stringify(env))) | 		.pipe(replace('ENV', JSON.stringify(env))) | ||||||
|  |  | ||||||
|  | @ -1,8 +1,8 @@ | ||||||
| import * as program from 'commander'; | import * as program from 'commander'; | ||||||
| import * as pkg from '../package.json'; | import config from './config'; | ||||||
| 
 | 
 | ||||||
| program | program | ||||||
| 	.version(pkg.version) | 	.version(config.version) | ||||||
| 	.option('--no-daemons', 'Disable daemon processes (for debbuging)') | 	.option('--no-daemons', 'Disable daemon processes (for debbuging)') | ||||||
| 	.option('--disable-clustering', 'Disable clustering') | 	.option('--disable-clustering', 'Disable clustering') | ||||||
| 	.option('--only-server', 'Run server only (without job queue processing)') | 	.option('--only-server', 'Run server only (without job queue processing)') | ||||||
|  |  | ||||||
|  | @ -8,7 +8,6 @@ import Logger from '../services/logger'; | ||||||
| import loadConfig from '../config/load'; | import loadConfig from '../config/load'; | ||||||
| import { Config } from '../config/types'; | import { Config } from '../config/types'; | ||||||
| import { lessThan } from '../prelude/array'; | import { lessThan } from '../prelude/array'; | ||||||
| import * as pkg from '../../package.json'; |  | ||||||
| import { program } from '../argv'; | import { program } from '../argv'; | ||||||
| import { showMachineInfo } from '../misc/show-machine-info'; | import { showMachineInfo } from '../misc/show-machine-info'; | ||||||
| import { initDb } from '../db/postgre'; | import { initDb } from '../db/postgre'; | ||||||
|  | @ -16,10 +15,10 @@ import { initDb } from '../db/postgre'; | ||||||
| const logger = new Logger('core', 'cyan'); | const logger = new Logger('core', 'cyan'); | ||||||
| const bootLogger = logger.createSubLogger('boot', 'magenta', false); | const bootLogger = logger.createSubLogger('boot', 'magenta', false); | ||||||
| 
 | 
 | ||||||
| function greet() { | function greet(config: Config) { | ||||||
| 	if (!program.quiet) { | 	if (!program.quiet) { | ||||||
| 		//#region Misskey logo
 | 		//#region Misskey logo
 | ||||||
| 		const v = `v${pkg.version}`; | 		const v = `v${config.version}`; | ||||||
| 		console.log('  _____ _         _           '); | 		console.log('  _____ _         _           '); | ||||||
| 		console.log(' |     |_|___ ___| |_ ___ _ _ '); | 		console.log(' |     |_|___ ___| |_ ___ _ _ '); | ||||||
| 		console.log(' | | | | |_ -|_ -| \'_| -_| | |'); | 		console.log(' | | | | |_ -|_ -| \'_| -_| | |'); | ||||||
|  | @ -35,21 +34,21 @@ function greet() { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	bootLogger.info('Welcome to Misskey!'); | 	bootLogger.info('Welcome to Misskey!'); | ||||||
| 	bootLogger.info(`Misskey v${pkg.version}`, null, true); | 	bootLogger.info(`Misskey v${config.version}`, null, true); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Init master process |  * Init master process | ||||||
|  */ |  */ | ||||||
| export async function masterMain() { | export async function masterMain() { | ||||||
| 	greet(); |  | ||||||
| 
 |  | ||||||
| 	let config!: Config; | 	let config!: Config; | ||||||
| 
 | 
 | ||||||
| 	try { | 	try { | ||||||
| 		// initialize app
 | 		// initialize app
 | ||||||
| 		config = await init(); | 		config = await init(); | ||||||
| 
 | 
 | ||||||
|  | 		greet(config); | ||||||
|  | 
 | ||||||
| 		if (config.port == null || Number.isNaN(config.port)) { | 		if (config.port == null || Number.isNaN(config.port)) { | ||||||
| 			bootLogger.error('The port is not configured. Please configure port.', null, true); | 			bootLogger.error('The port is not configured. Please configure port.', null, true); | ||||||
| 			process.exit(1); | 			process.exit(1); | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ | ||||||
| import * as fs from 'fs'; | import * as fs from 'fs'; | ||||||
| import * as yaml from 'js-yaml'; | import * as yaml from 'js-yaml'; | ||||||
| import { Source, Mixin } from './types'; | import { Source, Mixin } from './types'; | ||||||
| import * as pkg from '../../package.json'; | import * as meta from '../meta.json'; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Path of configuration directory |  * Path of configuration directory | ||||||
|  | @ -30,6 +30,7 @@ export default function load() { | ||||||
| 
 | 
 | ||||||
| 	config.port = config.port || parseInt(process.env.PORT || '', 10); | 	config.port = config.port || parseInt(process.env.PORT || '', 10); | ||||||
| 
 | 
 | ||||||
|  | 	mixin.version = meta.version; | ||||||
| 	mixin.host = url.host; | 	mixin.host = url.host; | ||||||
| 	mixin.hostname = url.hostname; | 	mixin.hostname = url.hostname; | ||||||
| 	mixin.scheme = url.protocol.replace(/:$/, ''); | 	mixin.scheme = url.protocol.replace(/:$/, ''); | ||||||
|  | @ -38,7 +39,7 @@ export default function load() { | ||||||
| 	mixin.apiUrl = `${mixin.scheme}://${mixin.host}/api`; | 	mixin.apiUrl = `${mixin.scheme}://${mixin.host}/api`; | ||||||
| 	mixin.authUrl = `${mixin.scheme}://${mixin.host}/auth`; | 	mixin.authUrl = `${mixin.scheme}://${mixin.host}/auth`; | ||||||
| 	mixin.driveUrl = `${mixin.scheme}://${mixin.host}/files`; | 	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; | 	if (config.autoAdmin == null) config.autoAdmin = false; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -58,6 +58,7 @@ export type Source = { | ||||||
|  * Misskeyが自動的に(ユーザーが設定した情報から推論して)設定する情報 |  * Misskeyが自動的に(ユーザーが設定した情報から推論して)設定する情報 | ||||||
|  */ |  */ | ||||||
| export type Mixin = { | export type Mixin = { | ||||||
|  | 	version: string; | ||||||
| 	host: string; | 	host: string; | ||||||
| 	hostname: string; | 	hostname: string; | ||||||
| 	scheme: string; | 	scheme: string; | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								src/meta.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/meta.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | ||||||
|  | { | ||||||
|  | 	"version": "unknown" | ||||||
|  | } | ||||||
|  | @ -3,7 +3,6 @@ import * as os from 'os'; | ||||||
| import config from '../../../config'; | import config from '../../../config'; | ||||||
| import define from '../define'; | import define from '../define'; | ||||||
| import { fetchMeta } from '../../../misc/fetch-meta'; | import { fetchMeta } from '../../../misc/fetch-meta'; | ||||||
| import * as pkg from '../../../../package.json'; |  | ||||||
| import { Emojis } from '../../../models'; | import { Emojis } from '../../../models'; | ||||||
| import { getConnection } from 'typeorm'; | import { getConnection } from 'typeorm'; | ||||||
| import redis from '../../../db/redis'; | import redis from '../../../db/redis'; | ||||||
|  | @ -36,7 +35,7 @@ export const meta = { | ||||||
| 				type: 'string' as const, | 				type: 'string' as const, | ||||||
| 				optional: false as const, nullable: false as const, | 				optional: false as const, nullable: false as const, | ||||||
| 				description: 'The version of Misskey of this instance.', | 				description: 'The version of Misskey of this instance.', | ||||||
| 				example: pkg.version | 				example: config.version | ||||||
| 			}, | 			}, | ||||||
| 			name: { | 			name: { | ||||||
| 				type: 'string' as const, | 				type: 'string' as const, | ||||||
|  | @ -114,7 +113,7 @@ export default define(meta, async (ps, me) => { | ||||||
| 		maintainerName: instance.maintainerName, | 		maintainerName: instance.maintainerName, | ||||||
| 		maintainerEmail: instance.maintainerEmail, | 		maintainerEmail: instance.maintainerEmail, | ||||||
| 
 | 
 | ||||||
| 		version: pkg.version, | 		version: config.version, | ||||||
| 
 | 
 | ||||||
| 		name: instance.name, | 		name: instance.name, | ||||||
| 		uri: config.url, | 		uri: config.url, | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ import * as Router from '@koa/router'; | ||||||
| import config from '../config'; | import config from '../config'; | ||||||
| import { fetchMeta } from '../misc/fetch-meta'; | import { fetchMeta } from '../misc/fetch-meta'; | ||||||
| // import User from '../models/user';
 | // import User from '../models/user';
 | ||||||
| import { name as softwareName, version, repository } from '../../package.json'; |  | ||||||
| // import Note from '../models/note';
 | // import Note from '../models/note';
 | ||||||
| 
 | 
 | ||||||
| const router = new Router(); | const router = new Router(); | ||||||
|  | @ -20,27 +19,7 @@ export const links = [/* (awaiting release) { | ||||||
| 
 | 
 | ||||||
| const nodeinfo2 = async () => { | const nodeinfo2 = async () => { | ||||||
| 	const [ | 	const [ | ||||||
| 		{ | 		meta, | ||||||
| 			name, |  | ||||||
| 			description, |  | ||||||
| 			maintainerName, |  | ||||||
| 			maintainerEmail, |  | ||||||
| 			langs, |  | ||||||
| 			ToSUrl, |  | ||||||
| 			repositoryUrl, |  | ||||||
| 			feedbackUrl, |  | ||||||
| 			announcements, |  | ||||||
| 			disableRegistration, |  | ||||||
| 			disableLocalTimeline, |  | ||||||
| 			disableGlobalTimeline, |  | ||||||
| 			enableRecaptcha, |  | ||||||
| 			maxNoteTextLength, |  | ||||||
| 			enableTwitterIntegration, |  | ||||||
| 			enableGithubIntegration, |  | ||||||
| 			enableDiscordIntegration, |  | ||||||
| 			enableEmail, |  | ||||||
| 			enableServiceWorker |  | ||||||
| 		}, |  | ||||||
| 		// total,
 | 		// total,
 | ||||||
| 		// activeHalfyear,
 | 		// activeHalfyear,
 | ||||||
| 		// activeMonth,
 | 		// activeMonth,
 | ||||||
|  | @ -57,43 +36,43 @@ const nodeinfo2 = async () => { | ||||||
| 
 | 
 | ||||||
| 	return { | 	return { | ||||||
| 		software: { | 		software: { | ||||||
| 			name: softwareName, | 			name: 'misskey', | ||||||
| 			version, | 			version: config.version, | ||||||
| 			repository: repository.url | 			repository: meta.repositoryUrl, | ||||||
| 		}, | 		}, | ||||||
| 		protocols: ['activitypub'], | 		protocols: ['activitypub'], | ||||||
| 		services: { | 		services: { | ||||||
| 			inbound: [] as string[], | 			inbound: [] as string[], | ||||||
| 			outbound: ['atom1.0', 'rss2.0'] | 			outbound: ['atom1.0', 'rss2.0'] | ||||||
| 		}, | 		}, | ||||||
| 		openRegistrations: !disableRegistration, | 		openRegistrations: !meta.disableRegistration, | ||||||
| 		usage: { | 		usage: { | ||||||
| 			users: {} // { total, activeHalfyear, activeMonth },
 | 			users: {} // { total, activeHalfyear, activeMonth },
 | ||||||
| 			// localPosts,
 | 			// localPosts,
 | ||||||
| 			// localComments
 | 			// localComments
 | ||||||
| 		}, | 		}, | ||||||
| 		metadata: { | 		metadata: { | ||||||
| 			name, | 			name: meta.name, | ||||||
| 			description, | 			description: meta.description, | ||||||
| 			maintainer: { | 			maintainer: { | ||||||
| 				name: maintainerName, | 				name: meta.maintainerName, | ||||||
| 				email: maintainerEmail | 				email: meta.maintainerEmail | ||||||
| 			}, | 			}, | ||||||
| 			langs, | 			langs: meta.langs, | ||||||
| 			ToSUrl, | 			ToSUrl: meta.ToSUrl, | ||||||
| 			repositoryUrl, | 			repositoryUrl: meta.repositoryUrl, | ||||||
| 			feedbackUrl, | 			feedbackUrl: meta.feedbackUrl, | ||||||
| 			announcements, | 			announcements: meta.announcements, | ||||||
| 			disableRegistration, | 			disableRegistration: meta.disableRegistration, | ||||||
| 			disableLocalTimeline, | 			disableLocalTimeline: meta.disableLocalTimeline, | ||||||
| 			disableGlobalTimeline, | 			disableGlobalTimeline: meta.disableGlobalTimeline, | ||||||
| 			enableRecaptcha, | 			enableRecaptcha: meta.enableRecaptcha, | ||||||
| 			maxNoteTextLength, | 			maxNoteTextLength: meta.maxNoteTextLength, | ||||||
| 			enableTwitterIntegration, | 			enableTwitterIntegration: meta.enableTwitterIntegration, | ||||||
| 			enableGithubIntegration, | 			enableGithubIntegration: meta.enableGithubIntegration, | ||||||
| 			enableDiscordIntegration, | 			enableDiscordIntegration: meta.enableDiscordIntegration, | ||||||
| 			enableEmail, | 			enableEmail: meta.enableEmail, | ||||||
| 			enableServiceWorker | 			enableServiceWorker: meta.enableServiceWorker | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -13,7 +13,6 @@ import * as views from 'koa-views'; | ||||||
| import docs from './docs'; | import docs from './docs'; | ||||||
| import packFeed from './feed'; | import packFeed from './feed'; | ||||||
| import { fetchMeta } from '../../misc/fetch-meta'; | import { fetchMeta } from '../../misc/fetch-meta'; | ||||||
| import * as pkg from '../../../package.json'; |  | ||||||
| import { genOpenapiSpec } from '../api/openapi/gen-spec'; | import { genOpenapiSpec } from '../api/openapi/gen-spec'; | ||||||
| import config from '../../config'; | import config from '../../config'; | ||||||
| import { Users, Notes, Emojis, UserProfiles, Pages } from '../../models'; | import { Users, Notes, Emojis, UserProfiles, Pages } from '../../models'; | ||||||
|  | @ -257,7 +256,7 @@ router.get('/info', async ctx => { | ||||||
| 		where: { host: null } | 		where: { host: null } | ||||||
| 	}); | 	}); | ||||||
| 	await ctx.render('info', { | 	await ctx.render('info', { | ||||||
| 		version: pkg.version, | 		version: config.version, | ||||||
| 		machine: os.hostname(), | 		machine: os.hostname(), | ||||||
| 		os: os.platform(), | 		os: os.platform(), | ||||||
| 		node: process.version, | 		node: process.version, | ||||||
|  |  | ||||||
|  | @ -130,7 +130,7 @@ module.exports = { | ||||||
| 			'process.env.NODE_ENV': JSON.stringify(isProduction ? 'production' : 'development') | 			'process.env.NODE_ENV': JSON.stringify(isProduction ? 'production' : 'development') | ||||||
| 		}), | 		}), | ||||||
| 		new WebpackOnBuildPlugin((stats: any) => { | 		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 }); | 			fs.mkdirSync('./built/client/assets/locales', { recursive: true }); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue