bs-platform
Version:
bucklescript compiler, ocaml standard libary by bucklescript and its required runtime support
35 lines (30 loc) • 1.25 kB
JavaScript
#!/usr/bin/env node
//@ts-check
// used as a unit of releasing
var path = require('path')
var fs = require('fs')
var cp = require('child_process')
var rootDir = path.join(__dirname,'..')
var libJsDir = path.join(rootDir,'lib','js')
var jscompDir = path.join(rootDir,'jscomp')
function run() {
// Note removing js file would affect `release.ninja`
// for (let file of fs.readdirSync(libJsDir)) {
// if (file.endsWith('.js')) {
// fs.unlinkSync(path.join(libJsDir, file))
// }
// }
cp.execSync(`git clean -dfx stubs ext common syntax depends core bsb main .`,
{ cwd: jscompDir, encoding: 'utf8', stdio: [0, 1, 2] })
cp.execSync(`git clean -dfx templates && ocp-ocamlres templates -o bsb_templates.ml`,
{ cwd: path.join(jscompDir,'bsb'), encoding: 'utf8', stdio: [0, 1, 2] })
cp.execSync(`ninja -t clean -g && ninja`,
{ cwd: jscompDir, encoding: 'utf8', stdio: [0, 1, 2] })
cp.execSync('ninja', {cwd : path.join(rootDir,'lib'), stdio:[0,1,2]})
cp.execSync('ninja -f release.ninja -t clean && ninja -f release.ninja', { cwd: path.join(rootDir, 'jscomp'), stdio: [0, 1, 2]})
require('./doc_gen').main()
}
if(require.main === module){
run()
}
exports.run = run