-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall-hpi-libraries
executable file
·52 lines (43 loc) · 1.57 KB
/
install-hpi-libraries
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
#!/usr/bin/env node
const { resolve } = require('path')
const { exec } = require('child_process')
const fs = require('fs/promises')
const installPythonPackage = (folder) => {
return new Promise((resolve, reject) => {
console.log("\n---", "\n\n", `Installing ${folder}...`)
exec(`cd ${folder} && python3 -m pip install --user -e .`, (err, stdout) => {
console.log(err || stdout, "\n\n", "---\n")
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 hpiFolders = [ 'hpi-karli', 'hpi-sean', 'hpi-maddie', 'hpi-api', 'authenticated-hpi-api' ].map((folderName) => {
return `${resolve('./hpi')}/${folderName}`
})
await installPythonPackage(hpiFolders[0])
await installPythonPackage(hpiFolders[1])
await installPythonPackage(hpiFolders[2])
await installPythonPackage(hpiFolders[3])
await installPythonPackage(hpiFolders[4])
const promises = serviceFolders.map(installPythonPackage)
await Promise.all(promises)
const hpiPath = './hpi'
await new Promise((resolve, reject) => {
console.log(`Running reorder_editable on ${hpiFolders.join(' ')}`)
exec(`python3 -m reorder_editable reorder ${hpiFolders.join(' ')}`, (err, stdout) => {
console.log("REORDER:", err, stdout)
return resolve(err || stdout)
})
})
})()