X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcore-utils.ts;h=33bbdca8b6b44f1a95516fe93359d53da7a5f47e;hb=49347a0a8b64559192d8f29f1237308025a48fd4;hp=1e92049f1b8e64dd40fb7e2a065842ce9adecba2;hpb=6fcd19ba737f1f5614a56c6925adb882dea43b8d;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts index 1e92049f1..33bbdca8b 100644 --- a/server/helpers/core-utils.ts +++ b/server/helpers/core-utils.ts @@ -11,11 +11,14 @@ import { rename, unlink, writeFile, - access + access, + stat, + Stats } from 'fs' import * as mkdirp from 'mkdirp' import * as bcrypt from 'bcrypt' import * as createTorrent from 'create-torrent' +import * as rimraf from 'rimraf' import * as openssl from 'openssl-wrapper' import * as Promise from 'bluebird' @@ -24,8 +27,31 @@ function isTestInstance () { } function root () { - // We are in /dist/helpers/utils.js - return join(__dirname, '..', '..', '..') + // We are in /helpers/utils.js + const paths = [ __dirname, '..', '..' ] + + // We are under /dist directory + if (process.mainModule.filename.endsWith('.ts') === false) { + paths.push('..') + } + + return join.apply(null, paths) +} + +// Thanks: https://stackoverflow.com/a/12034334 +function escapeHTML (stringParam) { + const entityMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '/': '/', + '`': '`', + '=': '=' + } + + return String(stringParam).replace(/[&<>"'`=\/]/g, s => entityMap[s]) } function promisify0 (func: (cb: (err: any, result: A) => void) => void): () => Promise { @@ -73,7 +99,7 @@ const readFilePromise = promisify2(readFile) const readFileBufferPromise = promisify1(readFile) const unlinkPromise = promisify1WithVoid(unlink) const renamePromise = promisify2WithVoid(rename) -const writeFilePromise = promisify2(writeFile) +const writeFilePromise = promisify2WithVoid(writeFile) const readdirPromise = promisify1(readdir) const mkdirpPromise = promisify1(mkdirp) const pseudoRandomBytesPromise = promisify1(pseudoRandomBytes) @@ -83,12 +109,15 @@ const bcryptComparePromise = promisify2(bcrypt.compare) const bcryptGenSaltPromise = promisify1(bcrypt.genSalt) const bcryptHashPromise = promisify2(bcrypt.hash) const createTorrentPromise = promisify2(createTorrent) +const rimrafPromise = promisify1WithVoid(rimraf) +const statPromise = promisify1(stat) // --------------------------------------------------------------------------- export { isTestInstance, root, + escapeHTML, promisify0, promisify1, @@ -105,5 +134,7 @@ export { bcryptComparePromise, bcryptGenSaltPromise, bcryptHashPromise, - createTorrentPromise + createTorrentPromise, + rimrafPromise, + statPromise }