46 lines
1.3 KiB
TypeScript
Raw Normal View History

2022-01-03 08:57:03 +01:00
import {GRAALVM_PLATFORM} from './constants'
2022-03-11 10:35:03 +01:00
import {exec} from './utils'
2022-01-03 08:57:03 +01:00
import {join} from 'path'
const BASE_FLAGS = ['--non-interactive', 'install', '--no-progress']
2022-01-03 08:57:03 +01:00
const COMPONENT_TO_POST_INSTALL_HOOK = new Map<string, Map<string, string>>([
[
'linux',
new Map<string, string>([
['ruby', 'languages/ruby/lib/truffle/post_install_hook.sh']
// ['R', 'languages/R/bin/configure_fastr'] (GR-36105: cannot be run non-interactively)
])
],
[
'darwin',
new Map<string, string>([
['ruby', 'languages/ruby/lib/truffle/post_install_hook.sh']
// ['R', 'languages/R/bin/configure_fastr'] (GR-36105: cannot be run non-interactively)
])
]
// No post install hooks for Windows (yet)
])
export async function setUpGUComponents(
gdsToken: string,
2022-01-03 08:57:03 +01:00
graalVMHome: string,
components: string[]
): Promise<void> {
await exec('gu', BASE_FLAGS.concat(components), {
env: {
...process.env,
GRAAL_EE_DOWNLOAD_TOKEN: gdsToken
}
})
2022-01-03 08:57:03 +01:00
const platformHooks = COMPONENT_TO_POST_INSTALL_HOOK.get(GRAALVM_PLATFORM)
if (platformHooks) {
for (const component of components) {
const postInstallHook = platformHooks.get(component)
if (postInstallHook) {
await exec(`"${join(graalVMHome, postInstallHook)}"`)
}
}
}
}