From 66170ca8c64fa4e76f3830e4a02a11345a03093b Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 17 Jul 2019 10:03:55 +0200 Subject: Use process.env.npm_package_version --- server/controllers/api/config.ts | 63 ++++++++++++++++++++------------------ server/controllers/static.ts | 5 ++- server/helpers/requests.ts | 6 ++-- server/initializers/constants.ts | 3 +- server/lib/plugins/plugin-index.ts | 7 ++--- 5 files changed, 43 insertions(+), 41 deletions(-) diff --git a/server/controllers/api/config.ts b/server/controllers/api/config.ts index 81518bbb5..21fa85a08 100644 --- a/server/controllers/api/config.ts +++ b/server/controllers/api/config.ts @@ -4,7 +4,7 @@ import { ServerConfig, UserRight } from '../../../shared' import { About } from '../../../shared/models/server/about.model' import { CustomConfig } from '../../../shared/models/server/custom-config.model' import { isSignupAllowed, isSignupAllowedForCurrentIP } from '../../helpers/signup' -import { CONSTRAINTS_FIELDS, DEFAULT_THEME_NAME } from '../../initializers/constants' +import { CONSTRAINTS_FIELDS, DEFAULT_THEME_NAME, PEERTUBE_VERSION } from '../../initializers/constants' import { asyncMiddleware, authenticate, ensureUserHasRight } from '../../middlewares' import { customConfigUpdateValidator } from '../../middlewares/validators/config' import { ClientHtml } from '../../lib/client-html' @@ -18,7 +18,6 @@ import { CONFIG, reloadConfig } from '../../initializers/config' import { PluginManager } from '../../lib/plugins/plugin-manager' import { getThemeOrDefault } from '../../lib/plugins/theme-utils' -const packageJSON = require('../../../../package.json') const configRouter = express.Router() const auditLogger = auditLoggerFactory('config') @@ -46,35 +45,14 @@ configRouter.delete('/custom', ) let serverCommit: string + async function getConfig (req: express.Request, res: express.Response) { const allowed = await isSignupAllowed() const allowedForCurrentIP = isSignupAllowedForCurrentIP(req.ip) + const defaultTheme = getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME) if (serverCommit === undefined) serverCommit = await getServerCommit() - const enabledResolutions = Object.keys(CONFIG.TRANSCODING.RESOLUTIONS) - .filter(key => CONFIG.TRANSCODING.ENABLED && CONFIG.TRANSCODING.RESOLUTIONS[key] === true) - .map(r => parseInt(r, 10)) - - const registeredPlugins = PluginManager.Instance.getRegisteredPlugins() - .map(p => ({ - name: p.name, - version: p.version, - description: p.description, - clientScripts: p.clientScripts - })) - - const registeredThemes = PluginManager.Instance.getRegisteredThemes() - .map(t => ({ - name: t.name, - version: t.version, - description: t.description, - css: t.css, - clientScripts: t.clientScripts - })) - - const defaultTheme = getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME) - const json: ServerConfig = { instance: { name: CONFIG.INSTANCE.NAME, @@ -88,10 +66,10 @@ async function getConfig (req: express.Request, res: express.Response) { } }, plugin: { - registered: registeredPlugins + registered: getRegisteredPlugins() }, theme: { - registered: registeredThemes, + registered: getRegisteredThemes(), default: defaultTheme }, email: { @@ -100,7 +78,7 @@ async function getConfig (req: express.Request, res: express.Response) { contactForm: { enabled: CONFIG.CONTACT_FORM.ENABLED }, - serverVersion: packageJSON.version, + serverVersion: PEERTUBE_VERSION, serverCommit, signup: { allowed, @@ -111,7 +89,7 @@ async function getConfig (req: express.Request, res: express.Response) { hls: { enabled: CONFIG.TRANSCODING.HLS.ENABLED }, - enabledResolutions + enabledResolutions: getEnabledResolutions() }, import: { videos: { @@ -342,3 +320,30 @@ function convertCustomConfigBody (body: CustomConfig) { return objectConverter(body, keyConverter, valueConverter) } + +function getRegisteredThemes () { + return PluginManager.Instance.getRegisteredThemes() + .map(t => ({ + name: t.name, + version: t.version, + description: t.description, + css: t.css, + clientScripts: t.clientScripts + })) +} + +function getEnabledResolutions () { + return Object.keys(CONFIG.TRANSCODING.RESOLUTIONS) + .filter(key => CONFIG.TRANSCODING.ENABLED && CONFIG.TRANSCODING.RESOLUTIONS[ key ] === true) + .map(r => parseInt(r, 10)) +} + +function getRegisteredPlugins () { + return PluginManager.Instance.getRegisteredPlugins() + .map(p => ({ + name: p.name, + version: p.version, + description: p.description, + clientScripts: p.clientScripts + })) +} diff --git a/server/controllers/static.ts b/server/controllers/static.ts index a6b462443..af7de562a 100644 --- a/server/controllers/static.ts +++ b/server/controllers/static.ts @@ -1,7 +1,7 @@ import * as cors from 'cors' import * as express from 'express' import { - HLS_STREAMING_PLAYLIST_DIRECTORY, + HLS_STREAMING_PLAYLIST_DIRECTORY, PEERTUBE_VERSION, ROUTE_CACHE_LIFETIME, STATIC_DOWNLOAD_PATHS, STATIC_MAX_AGE, @@ -19,7 +19,6 @@ import { join } from 'path' import { root } from '../helpers/core-utils' import { CONFIG } from '../initializers/config' -const packageJSON = require('../../../package.json') const staticRouter = express.Router() staticRouter.use(cors()) @@ -205,7 +204,7 @@ async function generateNodeinfo (req: express.Request, res: express.Response) { version: '2.0', software: { name: 'peertube', - version: packageJSON.version + version: PEERTUBE_VERSION }, protocols: [ 'activitypub' diff --git a/server/helpers/requests.ts b/server/helpers/requests.ts index 80476d649..b556c392e 100644 --- a/server/helpers/requests.ts +++ b/server/helpers/requests.ts @@ -1,14 +1,12 @@ import * as Bluebird from 'bluebird' import { createWriteStream, remove } from 'fs-extra' import * as request from 'request' -import { ACTIVITY_PUB, WEBSERVER } from '../initializers/constants' +import { ACTIVITY_PUB, PEERTUBE_VERSION, WEBSERVER } from '../initializers/constants' import { processImage } from './image-utils' import { join } from 'path' import { logger } from './logger' import { CONFIG } from '../initializers/config' -const packageJSON = require('../../../package.json') - function doRequest ( requestOptions: request.CoreOptions & request.UriOptions & { activityPub?: boolean }, bodyKBLimit = 1000 // 1MB @@ -68,7 +66,7 @@ async function downloadImage (url: string, destDir: string, destName: string, si } function getUserAgent () { - return `PeerTube/${packageJSON.version} (+${WEBSERVER.URL})` + return `PeerTube/${PEERTUBE_VERSION} (+${WEBSERVER.URL})` } // --------------------------------------------------------------------------- diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index cd4d4e847..93ccb7da8 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -18,8 +18,8 @@ const LAST_MIGRATION_VERSION = 400 // --------------------------------------------------------------------------- -// API version const API_VERSION = 'v1' +const PEERTUBE_VERSION = process.env.npm_package_version || 'unknown' const PAGINATION = { COUNT: { @@ -645,6 +645,7 @@ registerConfigChangedHandler(() => { export { WEBSERVER, API_VERSION, + PEERTUBE_VERSION, HLS_REDUNDANCY_DIRECTORY, P2P_MEDIA_LOADER_PEER_VERSION, AVATARS_SIZE, diff --git a/server/lib/plugins/plugin-index.ts b/server/lib/plugins/plugin-index.ts index 63cd47e63..6b7810618 100644 --- a/server/lib/plugins/plugin-index.ts +++ b/server/lib/plugins/plugin-index.ts @@ -10,8 +10,7 @@ import { PeerTubePluginIndex } from '../../../shared/models/plugins/peertube-plu import { PluginModel } from '../../models/server/plugin' import { PluginManager } from './plugin-manager' import { logger } from '../../helpers/logger' - -const packageJSON = require('../../../../package.json') +import { PEERTUBE_VERSION } from '../../initializers/constants' async function listAvailablePluginsFromIndex (options: PeertubePluginIndexList) { const { start = 0, count = 20, search, sort = 'npmName', pluginType } = options @@ -22,7 +21,7 @@ async function listAvailablePluginsFromIndex (options: PeertubePluginIndexList) sort, pluginType, search, - currentPeerTubeEngine: packageJSON.version + currentPeerTubeEngine: PEERTUBE_VERSION } const uri = CONFIG.PLUGINS.INDEX.URL + '/api/v1/plugins' @@ -53,7 +52,7 @@ async function addInstanceInformation (result: ResultList) async function getLatestPluginsVersion (npmNames: string[]): Promise { const bodyRequest: PeertubePluginLatestVersionRequest = { npmNames, - currentPeerTubeEngine: packageJSON.version + currentPeerTubeEngine: PEERTUBE_VERSION } const uri = CONFIG.PLUGINS.INDEX.URL + '/api/v1/plugins/latest-version' -- cgit v1.2.3