public static void createSdk(@NotNull String interpreterPath,
@NotNull PerlHostData hostData,
@NotNull PerlVersionManagerData versionManagerData,
@NotNull Consumer<Sdk> sdkConsumer) {
VersionDescriptor perlVersionDescriptor = PerlSdkType.getPerlVersionDescriptor(interpreterPath, hostData, versionManagerData);
if (perlVersionDescriptor == null) {
ApplicationManager.getApplication().invokeLater(
() -> Messages.showErrorDialog("Failed to fetch perl version, see logs for more details", "Failed to Create Interpreter"));
return;
}
String newSdkName = SdkConfigurationUtil.createUniqueSdkName(
suggestSdkName(perlVersionDescriptor, hostData, versionManagerData), PerlSdkTable.getInstance().getInterpreters());
final ProjectJdkImpl newSdk = PerlSdkTable.getInstance().createSdk(newSdkName);
newSdk.setHomePath(interpreterPath);
PerlImplementationData<?, ?> implementationData = PerlImplementationHandler.createData(
interpreterPath, hostData, versionManagerData);
if (implementationData == null) {
return;
}
newSdk.setVersionString(perlVersionDescriptor.getVersionString());
newSdk.setSdkAdditionalData(new PerlSdkAdditionalData(hostData, versionManagerData, implementationData));
sdkConsumer.accept(newSdk);
}