aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'server/helpers')
-rw-r--r--server/helpers/core-utils.ts8
-rw-r--r--server/helpers/utils.ts29
2 files changed, 26 insertions, 11 deletions
diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts
index b1a27e089..00bc0bdda 100644
--- a/server/helpers/core-utils.ts
+++ b/server/helpers/core-utils.ts
@@ -8,9 +8,9 @@ import * as createTorrent from 'create-torrent'
8import { createHash, pseudoRandomBytes } from 'crypto' 8import { createHash, pseudoRandomBytes } from 'crypto'
9import { isAbsolute, join } from 'path' 9import { isAbsolute, join } from 'path'
10import * as pem from 'pem' 10import * as pem from 'pem'
11import * as rimraf from 'rimraf'
12import { URL } from 'url' 11import { URL } from 'url'
13import { truncate } from 'lodash' 12import { truncate } from 'lodash'
13import { exec } from 'child_process'
14 14
15const timeTable = { 15const timeTable = {
16 ms: 1, 16 ms: 1,
@@ -178,6 +178,8 @@ const bcryptComparePromise = promisify2<any, string, boolean>(bcrypt.compare)
178const bcryptGenSaltPromise = promisify1<number, string>(bcrypt.genSalt) 178const bcryptGenSaltPromise = promisify1<number, string>(bcrypt.genSalt)
179const bcryptHashPromise = promisify2<any, string | number, string>(bcrypt.hash) 179const bcryptHashPromise = promisify2<any, string | number, string>(bcrypt.hash)
180const createTorrentPromise = promisify2<string, any, any>(createTorrent) 180const createTorrentPromise = promisify2<string, any, any>(createTorrent)
181const execPromise2 = promisify2<string, any, string>(exec)
182const execPromise = promisify1<string, string>(exec)
181 183
182// --------------------------------------------------------------------------- 184// ---------------------------------------------------------------------------
183 185
@@ -203,5 +205,7 @@ export {
203 bcryptComparePromise, 205 bcryptComparePromise,
204 bcryptGenSaltPromise, 206 bcryptGenSaltPromise,
205 bcryptHashPromise, 207 bcryptHashPromise,
206 createTorrentPromise 208 createTorrentPromise,
209 execPromise2,
210 execPromise
207} 211}
diff --git a/server/helpers/utils.ts b/server/helpers/utils.ts
index f5bf6de56..6228fec04 100644
--- a/server/helpers/utils.ts
+++ b/server/helpers/utils.ts
@@ -1,7 +1,7 @@
1import { ResultList } from '../../shared' 1import { ResultList } from '../../shared'
2import { CONFIG } from '../initializers' 2import { CONFIG } from '../initializers'
3import { ApplicationModel } from '../models/application/application' 3import { ApplicationModel } from '../models/application/application'
4import { pseudoRandomBytesPromise, sha256 } from './core-utils' 4import { execPromise, execPromise2, pseudoRandomBytesPromise, sha256 } from './core-utils'
5import { logger } from './logger' 5import { logger } from './logger'
6import { join } from 'path' 6import { join } from 'path'
7import { Instance as ParseTorrent } from 'parse-torrent' 7import { Instance as ParseTorrent } from 'parse-torrent'
@@ -54,14 +54,25 @@ function getSecureTorrentName (originalName: string) {
54 return sha256(originalName) + '.torrent' 54 return sha256(originalName) + '.torrent'
55} 55}
56 56
57function getVersion () { 57async function getVersion () {
58 const tag = require('child_process') 58 try {
59 .execSync('[[ ! -d .git ]] || git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || true', { stdio: [0,1,2] }) 59 const tag = await execPromise2(
60 if (tag) return tag.replace(/^v/, '') 60 '[ ! -d .git ] || git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || true',
61 61 { stdio: [ 0, 1, 2 ] }
62 const version = require('child_process') 62 )
63 .execSync('[[ ! -d .git ]] || git rev-parse --short HEAD').toString().trim() 63
64 if (version) return version 64 if (tag) return tag.replace(/^v/, '')
65 } catch (err) {
66 logger.debug('Cannot get version from git tags.', { err })
67 }
68
69 try {
70 const version = await execPromise('[ ! -d .git ] || git rev-parse --short HEAD')
71
72 if (version) return version.toString().trim()
73 } catch (err) {
74 logger.debug('Cannot get version from git HEAD.', { err })
75 }
65 76
66 return require('../../../package.json').version 77 return require('../../../package.json').version
67} 78}