From 3a6c75410b5e12fc5054617cebc044096e505faa Mon Sep 17 00:00:00 2001 From: Andrii Zinchenko Date: Thu, 26 Sep 2024 19:47:24 +0200 Subject: [PATCH] [eel] EelPath: add helper functions GitOrigin-RevId: e7755f3826ed8c6b0fa71279b4a9a55a03fc3925 --- .../com/intellij/platform/eel/fs/EelFileSystemApi.kt | 10 +++++++++- .../platform/eel/provider/utils/eelPathUtils.kt | 12 ++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt diff --git a/platform/eel/src/com/intellij/platform/eel/fs/EelFileSystemApi.kt b/platform/eel/src/com/intellij/platform/eel/fs/EelFileSystemApi.kt index 0af47efd1410..e9dc29850b63 100644 --- a/platform/eel/src/com/intellij/platform/eel/fs/EelFileSystemApi.kt +++ b/platform/eel/src/com/intellij/platform/eel/fs/EelFileSystemApi.kt @@ -6,8 +6,16 @@ import com.intellij.platform.eel.EelUserPosixInfo import com.intellij.platform.eel.EelUserWindowsInfo import com.intellij.platform.eel.fs.EelFileSystemApi.StatError import com.intellij.platform.eel.path.EelPath +import com.intellij.platform.eel.path.EelPathResult import java.nio.ByteBuffer -import kotlin.Throws + +fun EelFileSystemApi.getPath(string: String): EelPathResult { + return EelPath.Absolute.parse(string, when (this) { + is EelFileSystemPosixApi -> EelPath.Absolute.OS.UNIX + is EelFileSystemWindowsApi -> EelPath.Absolute.OS.WINDOWS + else -> throw UnsupportedOperationException("Unsupported OS: ${this::class.java}") + }) +} // TODO Integrate case-(in)sensitiveness into the interface. diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt b/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt new file mode 100644 index 000000000000..673fb0ab3811 --- /dev/null +++ b/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt @@ -0,0 +1,12 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.platform.eel.provider.utils + +import com.intellij.platform.eel.path.EelPath +import com.intellij.platform.eel.path.EelPathResult + +fun EelPathResult.unwrap(): T { + return when (this) { + is EelPathResult.Ok -> path + is EelPathResult.Err -> throw RuntimeException(reason) + } +} \ No newline at end of file