in src/extension/src/coreTemplateStudio.ts [37:71]
public static async GetInstance(context: vscode.ExtensionContext | undefined): Promise<CoreTemplateStudio> {
if (CoreTemplateStudio._instance) {
return Promise.resolve(CoreTemplateStudio._instance);
}
const platform = process.platform;
let cliExecutableName = CLI.BASE_CLI_TOOL_NAME;
let extensionPath;
if (context) {
extensionPath = context.extensionPath;
} else {
extensionPath = path.join(__dirname, "..");
}
if (platform === CLI_SETTINGS.WINDOWS_PLATFORM_VERSION) {
cliExecutableName += ".exe";
}
const cliPath = path.join(extensionPath, "src", "corets-cli", platform, cliExecutableName);
const cliWorkingDirectory = path.join(extensionPath, "src", "corets-cli", platform);
if (os.platform() !== CLI_SETTINGS.WINDOWS_PLATFORM_VERSION) {
// Not unsafe as the parameter comes from trusted source
fs.chmodSync(cliPath, 0o755);
}
const spawnedProcessCli = spawn(cliPath, [], {
cwd: cliWorkingDirectory,
});
CoreTemplateStudio._instance = new CoreTemplateStudio(spawnedProcessCli);
return CoreTemplateStudio._instance;
}