]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tools/cli.ts
Merge branch 'develop' into cli-wrapper
[github/Chocobozzz/PeerTube.git] / server / tools / cli.ts
1 const config = require('application-config')('PeerTube/CLI')
2 const netrc = require('netrc-parser').default
3
4 const version = () => {
5 const tag = require('child_process')
6 .execSync('[[ ! -d .git ]] || git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || true', { stdio: [0,1,2] })
7 if (tag) return tag
8
9 const version = require('child_process')
10 .execSync('[[ ! -d .git ]] || git rev-parse --short HEAD').toString().trim()
11 if (version) return version
12
13 return require('../../../package.json').version
14 }
15
16 let settings = {
17 remotes: [],
18 default: 0
19 }
20
21 interface Settings {
22 remotes: any[],
23 default: number
24 }
25
26 async function getSettings () {
27 return new Promise<Settings>((res, rej) => {
28 let settings = {
29 remotes: [],
30 default: 0
31 } as Settings
32 config.read((err, data) => {
33 if (err) {
34 return rej(err)
35 }
36 return res(data || settings)
37 })
38 })
39 }
40
41 async function writeSettings (settings) {
42 return new Promise((res, rej) => {
43 config.write(settings, function (err) {
44 if (err) {
45 return rej(err)
46 }
47 return res()
48 })
49 })
50 }
51
52 netrc.loadSync()
53
54 // ---------------------------------------------------------------------------
55
56 export {
57 version,
58 config,
59 settings,
60 getSettings,
61 writeSettings,
62 netrc
63 }