aboutsummaryrefslogtreecommitdiff
path: root/src/Utilities/Path.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/Utilities/Path.kt')
-rw-r--r--src/Utilities/Path.kt21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/Utilities/Path.kt b/src/Utilities/Path.kt
new file mode 100644
index 00000000..5498d36e
--- /dev/null
+++ b/src/Utilities/Path.kt
@@ -0,0 +1,21 @@
+package org.jetbrains.dokka
+
+import java.io.*
+
+fun File.getRelativePath(name: File): File {
+ val parent = getParentFile()
+
+ if (parent == null)
+ throw IOException("No common directory");
+
+ val basePath = getCanonicalPath();
+ val targetPath = name.getCanonicalPath();
+
+ if (targetPath.startsWith(basePath)) {
+ return File(targetPath.substring(basePath.length() + 1))
+ } else {
+ return File(".." + File.separator + parent.getRelativePath(name))
+ }
+}
+
+fun File.appendExtension(extension: String) = File(getPath() + "." + extension)