-
Notifications
You must be signed in to change notification settings - Fork 2
/
util.js
71 lines (64 loc) · 1.76 KB
/
util.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
const fs = require('fs')
const { exec } = require('child_process')
const LogHorizon = require('log-horizon')
const logger = new LogHorizon({statusType:'badge'})
function readFile (filePath) {
return fs.readFileSync(filePath, 'utf8')
}
function writeFile (filePath, data) {
return new Promise ((resolve, reject) => {
fs.writeFile(filePath, data, {encoding: 'utf8', mode: 0o755}, (err) => {
if (err) {
reject(err)
} else {
resolve(true)
}
})
})
}
function makeDirectory (path) {
fs.mkdirSync(path)
}
function encryptDefault (output = 'aws_credes.encrypted', logSuccess = true) {
return new Promise ((resolve, reject) => {
exec(`jet encrypt env ${output}`, function(error, stdout, stderr) {
if (error !== null) {
logger.error(stdout)
resolve(false)
} else {
if (logSuccess) logger.success('encrypted.')
resolve(true)
}
})
})
}
function checkJetCLI (logSuccess = true) {
return new Promise ((resolve, reject) => {
exec('jet', function (error, stdout, stderr) {
if (error !== null) {
logger.error(`jet-cli not yet install.`)
logger.warn(`Need help? Check the docs at https://documentation.codeship.com/pro/jet-cli/installation`)
resolve(false)
} else {
if (logSuccess) logger.success("jet-cli installed.")
resolve(true)
}
})
})
}
async function encryptWithCheckJet(filename = 'aws_credes.encrypted') {
const jetChecked = await checkJetCLI(false)
if(jetChecked) {
encrypt = await encryptDefault(`${filename}`, false)
return Promise.resolve(encrypt)
}
return Promise.resolve(false)
}
module.exports = {
readFile,
writeFile,
makeDirectory,
encryptDefault,
checkJetCLI,
encryptWithCheckJet
}