-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinitialize-backup-jobs
executable file
·40 lines (31 loc) · 1.08 KB
/
initialize-backup-jobs
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
#!/usr/bin/env node
const { resolve } = require('path')
const { exec } = require('child_process')
const fs = require('fs/promises')
const buildAndInstallPackage = (folder) => {
const serviceName = folder.split('/').reverse()[0]
return new Promise((resolve, reject) => {
exec(`cd ${folder} && chmod +x ${serviceName} && mv ${serviceName} /usr/local/bin`, (err, stdout) => {
// exec(`cd ${folder} && rm -rf ./pkg ${serviceName} && npm install && pkg -t node14-linux -o ${serviceName} .`, (err, stdout) => {
console.log(err || stdout)
return resolve(err || stdout)
})
})
}
;(async () => {
const servicesDirContents = await fs.readdir(
resolve(`./services`),
{
withFileTypes: true,
},
)
let serviceFolders = servicesDirContents.filter((_folder) => _folder.isDirectory())
serviceFolders = serviceFolders.map((_folder) =>
`${resolve('./services')}/${_folder.name}`
)
const promises = serviceFolders.map(async (folder) => {
await buildAndInstallPackage(folder)
return Promise.resolve()
})
await Promise.all(promises)
})()