-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.js
41 lines (33 loc) · 1.33 KB
/
build.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
const {exec} = require('child_process');
const {promisify} = require('util');
const {existsSync, unlinkSync, rmdirSync, lstatSync, readdirSync, mkdirSync, renameSync, } = require('fs');
const path = require('path');
const promisifiedExec = promisify(exec);
const deleteDir = (dirPath) => {
if (existsSync(dirPath)) {
readdirSync(dirPath).forEach((file) => {
const currentFilePath = path.join(dirPath, file);
if (lstatSync(currentFilePath).isDirectory()) {
deleteDir(currentFilePath);
} else {
unlinkSync(currentFilePath);
}
});
rmdirSync(dirPath);
}
};
async function build() {
if (existsSync('executables')) {
deleteDir('executables');
}
mkdirSync('executables');
mkdirSync(path.join('executables', 'win-64'));
mkdirSync(path.join('executables', 'linux-64'));
mkdirSync(path.join('executables', 'macos-64'));
const {stdout} = await promisifiedExec('pkg .');
console.log(stdout);
renameSync('hackerrank-solutions-extractor-win.exe', path.join('executables', 'win-64', 'hse.exe'));
renameSync('hackerrank-solutions-extractor-linux', path.join('executables', 'linux-64', 'hse'));
renameSync('hackerrank-solutions-extractor-macos', path.join('executables', 'macos-64', 'hse'));
}
build();