64 lines
1.3 KiB
TypeScript
64 lines
1.3 KiB
TypeScript
const config = require('application-config')('PeerTube/CLI')
|
|
const netrc = require('netrc-parser').default
|
|
|
|
const version = () => {
|
|
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
|
|
|
|
const version = require('child_process')
|
|
.execSync('[[ ! -d .git ]] || git rev-parse --short HEAD').toString().trim()
|
|
if (version) return version
|
|
|
|
return require('../../../package.json').version
|
|
}
|
|
|
|
let settings = {
|
|
remotes: [],
|
|
default: 0
|
|
}
|
|
|
|
interface Settings {
|
|
remotes: any[],
|
|
default: number
|
|
}
|
|
|
|
async function getSettings () {
|
|
return new Promise<Settings>((res, rej) => {
|
|
let settings = {
|
|
remotes: [],
|
|
default: 0
|
|
} as Settings
|
|
config.read((err, data) => {
|
|
if (err) {
|
|
return rej(err)
|
|
}
|
|
return res(data || settings)
|
|
})
|
|
})
|
|
}
|
|
|
|
async function writeSettings (settings) {
|
|
return new Promise((res, rej) => {
|
|
config.write(settings, function (err) {
|
|
if (err) {
|
|
return rej(err)
|
|
}
|
|
return res()
|
|
})
|
|
})
|
|
}
|
|
|
|
netrc.loadSync()
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
export {
|
|
version,
|
|
config,
|
|
settings,
|
|
getSettings,
|
|
writeSettings,
|
|
netrc
|
|
}
|