Fix config endpoint
authorChocobozzz <me@florianbigard.com>
Wed, 3 Oct 2018 12:35:35 +0000 (14:35 +0200)
committerChocobozzz <me@florianbigard.com>
Wed, 3 Oct 2018 12:36:00 +0000 (14:36 +0200)
server/controllers/api/config.ts
server/helpers/core-utils.ts
server/helpers/utils.ts
server/tools/cli.ts
server/tools/peertube.ts

index f14104d7fc244ca0217b1a9a6d145f2e471e8eb6..03c1cec7b77dfc0141f4a0613dba02c672b97dd3 100644 (file)
@@ -43,7 +43,7 @@ let serverCommit: string
 async function getConfig (req: express.Request, res: express.Response, next: express.NextFunction) {
   const allowed = await isSignupAllowed()
   const allowedForCurrentIP = isSignupAllowedForCurrentIP(req.ip)
-  serverCommit = (serverCommit) ? serverCommit : getVersion()
+  serverCommit = (serverCommit) ? serverCommit : await getVersion()
   if (serverCommit === packageJSON.version) serverCommit = ''
 
   const enabledResolutions = Object.keys(CONFIG.TRANSCODING.RESOLUTIONS)
index b1a27e089110d632604e5908506cc0961baffa46..00bc0bdda71ab861af0120ee4a6e0a3ad9571473 100644 (file)
@@ -8,9 +8,9 @@ import * as createTorrent from 'create-torrent'
 import { createHash, pseudoRandomBytes } from 'crypto'
 import { isAbsolute, join } from 'path'
 import * as pem from 'pem'
-import * as rimraf from 'rimraf'
 import { URL } from 'url'
 import { truncate } from 'lodash'
+import { exec } from 'child_process'
 
 const timeTable = {
   ms:           1,
@@ -178,6 +178,8 @@ const bcryptComparePromise = promisify2<any, string, boolean>(bcrypt.compare)
 const bcryptGenSaltPromise = promisify1<number, string>(bcrypt.genSalt)
 const bcryptHashPromise = promisify2<any, string | number, string>(bcrypt.hash)
 const createTorrentPromise = promisify2<string, any, any>(createTorrent)
+const execPromise2 = promisify2<string, any, string>(exec)
+const execPromise = promisify1<string, string>(exec)
 
 // ---------------------------------------------------------------------------
 
@@ -203,5 +205,7 @@ export {
   bcryptComparePromise,
   bcryptGenSaltPromise,
   bcryptHashPromise,
-  createTorrentPromise
+  createTorrentPromise,
+  execPromise2,
+  execPromise
 }
index f5bf6de561946563fec346fc8fabf2395711be47..6228fec0459e97d3abd7c3fc5a9c54415fd885d8 100644 (file)
@@ -1,7 +1,7 @@
 import { ResultList } from '../../shared'
 import { CONFIG } from '../initializers'
 import { ApplicationModel } from '../models/application/application'
-import { pseudoRandomBytesPromise, sha256 } from './core-utils'
+import { execPromise, execPromise2, pseudoRandomBytesPromise, sha256 } from './core-utils'
 import { logger } from './logger'
 import { join } from 'path'
 import { Instance as ParseTorrent } from 'parse-torrent'
@@ -54,14 +54,25 @@ function getSecureTorrentName (originalName: string) {
   return sha256(originalName) + '.torrent'
 }
 
-function getVersion () {
-  const tag = require('child_process')
-    .execSync('[[ ! -d .git ]] || git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || true', { stdio: [0,1,2] })
-  if (tag) return tag.replace(/^v/, '')
-
-  const version = require('child_process')
-    .execSync('[[ ! -d .git ]] || git rev-parse --short HEAD').toString().trim()
-  if (version) return version
+async function getVersion () {
+  try {
+    const tag = await execPromise2(
+      '[ ! -d .git ] || git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || true',
+      { stdio: [ 0, 1, 2 ] }
+    )
+
+    if (tag) return tag.replace(/^v/, '')
+  } catch (err) {
+    logger.debug('Cannot get version from git tags.', { err })
+  }
+
+  try {
+    const version = await execPromise('[ ! -d .git ] || git rev-parse --short HEAD')
+
+    if (version) return version.toString().trim()
+  } catch (err) {
+    logger.debug('Cannot get version from git HEAD.', { err })
+  }
 
   return require('../../../package.json').version
 }
index 87d1512a3b8fdc394b4075a350b395dbe8727d71..53b20964e6faef34fd4d4ea2d9a5905aec75c0e0 100644 (file)
@@ -1,8 +1,7 @@
 const config = require('application-config')('PeerTube/CLI')
 const netrc = require('netrc-parser').default
-import { getVersion } from '../helpers/utils'
 
-const version = getVersion
+const version = require('../../../package.json').version
 
 let settings = {
   remotes: [],
index 21609deedbd4d54a502442b981d2bdcafac8b2f9..ad76bafb4063411070d2974282d5cb48aa0ed61f 100755 (executable)
@@ -7,7 +7,7 @@ import {
 } from './cli'
 
 program
-  .version(version(), '-v, --version')
+  .version(version, '-v, --version')
   .usage('[command] [options]')
 
 /* Subcommands automatically loaded in the directory and beginning by peertube-* */