enso/build/paths.js

79 lines
2.7 KiB
JavaScript

const path = require('path')
const os = require('os')
// =============
// === Paths ===
// =============
let paths = {}
paths.root = path.dirname(__dirname)
paths.github = {}
paths.github.root = path.join(paths.root, '.github')
paths.github.workflows = path.join(paths.github.root, 'workflows')
paths.script = {}
paths.script.main = path.join(paths.root, 'run')
paths.script.root = path.join(paths.root, 'build')
paths.script.run = path.join(paths.script.root, 'run')
paths.dist = {}
paths.dist.root = path.join(paths.root, 'dist')
paths.dist.client = path.join(paths.dist.root, 'client')
paths.dist.content = path.join(paths.dist.root, 'content')
paths.dist.assets = path.join(paths.dist.content, 'assets')
paths.dist.packageJson = path.join(paths.dist.content, 'package.json')
paths.dist.preload = path.join(paths.dist.content, 'preload.js')
paths.dist.bin = path.join(paths.dist.root, 'bin')
paths.dist.init = path.join(paths.dist.root, 'init')
paths.dist.buildInit = path.join(paths.dist.root, 'build-init')
paths.dist.buildInfo = path.join(paths.dist.root, 'build.json')
paths.dist.tmp = path.join(paths.dist.root, 'tmp')
const WASM_MAIN = 'ide.wasm'
const WASM_MAIN_RAW = 'ide_bg.wasm'
const WASM_GLUE = 'ide.js'
// Final WASM artifacts in `dist` directory.
paths.dist.wasm = {}
paths.dist.wasm.root = path.join(paths.dist.root, 'wasm')
paths.dist.wasm.main = path.join(paths.dist.wasm.root, WASM_MAIN)
paths.dist.wasm.mainRaw = path.join(paths.dist.wasm.root, WASM_MAIN_RAW)
paths.dist.wasm.glue = path.join(paths.dist.wasm.root, WASM_GLUE)
// Intermediate WASM artifacts.
paths.wasm = {}
paths.wasm.root = path.resolve(os.tmpdir(), 'enso-wasm')
paths.wasm.main = path.join(paths.wasm.root, WASM_MAIN)
paths.wasm.mainRaw = path.join(paths.wasm.root, WASM_MAIN_RAW)
paths.wasm.glue = path.join(paths.wasm.root, WASM_GLUE)
paths.wasm.mainGz = path.join(paths.wasm.root, 'ide.wasm.gz')
paths.ide_desktop = {}
paths.ide_desktop.lib = {}
paths.ide_desktop.root = path.join(paths.root, 'app', 'ide-desktop')
paths.ide_desktop.lib.projectManager = path.join(paths.ide_desktop.root, 'lib', 'project-manager')
paths.ide_desktop.lib.content = path.join(paths.ide_desktop.root, 'lib', 'content')
paths.gui = {}
paths.gui.root = path.join(paths.root, 'app', 'gui')
function get_project_manager_extension() {
const target_platform = os.platform()
switch (target_platform) {
case 'win32':
return '.exe'
default:
return ''
}
}
paths.get_project_manager_path = function (root) {
let base_path = path.join(root, 'enso', 'bin')
const extension = get_project_manager_extension()
return path.join(base_path, 'project-manager') + extension
}
module.exports = paths