4PN3R2LY3SJGMP2HFAR7MBSFWOG633FSN2FEIQEZREDZVI4JB76QC
if (!config.get<boolean>("ignoreMissingInstallation")) {
const selectInstallation = "Select a Pijul Executable";
const ignore = "Don't Show this Warning Again";
if (!(config.get<boolean>('ignoreMissingInstallation') ?? false)) {
const selectInstallation = 'Select a Pijul Executable';
const ignore = 'Don\'t Show this Warning Again';
return new Promise<IPijul>((resolve, reject) => {
const pathDefined = path || "pijul";
const child = cp.spawn(pathDefined || "pijul", ["--version"]);
return await new Promise<IPijul>((resolve, reject) => {
const pathDefined = path ?? 'pijul';
const child = cp.spawn(pathDefined, ['--version']);
child.stdout.on("data", (b: Buffer) => buffers.push(b));
child.on("error", () => reject(new Error("Error checking version at " + path)));
child.on("close", code => {
if (code) {
reject(new Error("Error checking version at " + path));
child.stdout.on('data', (b: Buffer) => buffers.push(b));
child.on('error', () => reject(new Error(`Error checking version at ${pathDefined}`)));
child.on('close', code => {
const tokens = Buffer.concat(buffers).toString('utf8').trim().split(' ');
if (code != null || tokens[0] !== 'pijul') {
reject(new Error(`Error checking version at ${pathDefined}`));
async function _activate (_context: vscode.ExtensionContext, config: vscode.WorkspaceConfiguration, disposables: vscode.Disposable[]) {
vscode.window.showInformationMessage("Pijul repository detected in workspace, extension has been activated.");
console.debug("Pijul VS Code Integration Activated");
async function _activate (_context: vscode.ExtensionContext, config: vscode.WorkspaceConfiguration, disposables: vscode.Disposable[]): Promise<void> {
await vscode.window.showInformationMessage('Pijul repository detected in workspace, extension has been activated.');
console.debug('Pijul VS Code Integration Activated');
pijul = await checkPijulInstallation(installationPath, config, outputChannel);
outputChannel.appendLine(`Using Pijul ${pijul.version} located at ${pijul.path}`);
pijulInfo = await checkPijulInstallation(installationPath, config, outputChannel);
outputChannel.appendLine(`Using Pijul ${pijulInfo.version} at ${pijulInfo.path}`);
if (err.message === "Ignore") {
// Complete activation without finding the installation
identifiedInstallation = true;
return;
} else {
// Reset the configuration and try again
vscode.window.showErrorMessage(`Failed to find pijul installation at ${err.message.split(" ").pop()}, resetting...`);
if (err instanceof Error) {
if (err.message === 'Ignore') {
// Complete activation without finding the installation
identifiedInstallation = true;
return;
} else {
// Let the user know that the executable didn't work and try again
await vscode.window.showErrorMessage(`Failed to find pijul installation at ${err.message?.split(' ')?.pop() ?? ''}, resetting...`);
}
suite("Extension Test Suite", () => {
vscode.window.showInformationMessage("Start all tests.");
suite('Extension Test Suite', () => {
// eslint-disable-next-line @typescript-eslint/no-floating-promises
vscode.window.showInformationMessage('Start all tests.');