function getLaunchFilePath(filePathOrFolder: string): Promise<string> { return fs.lstatAsync(filePathOrFolder).then(stats => { // If a file path was passed, assume its the launch file. if (stats.isFile()) { return filePathOrFolder; } // Otherwise, search the specified folder. let candidate: string; candidate = path.join(filePathOrFolder, runFileName); if (fs.existsSync(candidate)) { return candidate; } candidate = path.join(filePathOrFolder, omnisharpFileName); if (fs.existsSync(candidate)) { return candidate; } candidate = path.join(filePathOrFolder, omnisharpExeFileName); if (fs.existsSync(candidate)) { return candidate; } throw new Error(`Could not fnd launch file in ${filePathOrFolder}. Expected '${runFileName}', '${omnisharpFileName}', or '${omnisharpExeFileName}'.`); }); }
/** * Given a file path, returns the path to the SQL Tools service file. */ public findServerPath(filePath: string, executableFiles: string[] = undefined): Promise<string> { return fs.lstatAsync(filePath).then(stats => { // If a file path was passed, assume its the launch file. if (stats.isFile()) { return filePath; } // Otherwise, search the specified folder. let candidate: string; if (executableFiles === undefined && this._config !== undefined) { executableFiles = this._config.getExecutableFiles(); } if (executableFiles !== undefined) { executableFiles.forEach(element => { let executableFile = path.join(filePath, element); if (candidate === undefined && fs.existsSync(executableFile)) { candidate = executableFile; return candidate; } }); } return candidate; }); }
export async function stat_file(file_name: string): Promise<any>{ await lock.acquire(); let out: any; try{ out = await fs.lstatAsync(file_name); } finally{ lock.release(); } return out; }
return projects.map(project => { let projectDirectory = project.Path; return fs.lstatAsync(projectDirectory).then(stats => { if (stats.isFile()) { projectDirectory = path.dirname(projectDirectory); } return { label: `dotnet restore - (${project.Name || path.basename(project.Path)})`, description: projectDirectory, execute() { return runDotnetRestore(projectDirectory); } }; }); });
export function findServerPath(filePath: string): Promise<string> { return fs.lstatAsync(filePath).then(stats => { // If a file path was passed, assume its the launch file. if (stats.isFile()) { return filePath; } // Otherwise, search the specified folder. let candidate: string; candidate = path.join(filePath, 'OmniSharp.exe'); if (fs.existsSync(candidate)) { return candidate; } candidate = path.join(filePath, 'OmniSharp'); if (fs.existsSync(candidate)) { return candidate; } throw new Error(`Could not find OmniSharp launch file in ${filePath}.`); }); }