resolvedExecutable property
File
resolvedExecutable
Resolve the binary query engine executable path.
Implementation
File get resolvedExecutable {
// If executable exists, return it.
final configured = File(executable);
if (configured.existsSync()) {
return configured;
}
final basename = path.basename(executable);
final searchDirectories = [
// Search in current working directory.
..._generateSearchDirectories(Directory.current.path),
// Search in the executable directory.
..._generateSearchDirectories(path.dirname(Platform.resolvedExecutable)),
// Search in current script directory.
..._generateSearchDirectories(path.dirname(Platform.script.toFilePath())),
];
// Search in the search directories.
for (final directory in searchDirectories) {
final file = File(path.join(directory, basename));
if (file.existsSync()) {
return file;
}
final defaultFile = File(path.join(directory, 'prisma-query-engine'));
if (defaultFile.existsSync()) {
return defaultFile;
}
}
throw PrismaInitializationException(
message:
'Cannot find the query engine binary (Basename: $basename | prisma-query-engine)',
engine: this);
}