summaryrefslogtreecommitdiff
path: root/source/comp/path.d
diff options
context:
space:
mode:
Diffstat (limited to 'source/comp/path.d')
-rw-r--r--source/comp/path.d33
1 files changed, 33 insertions, 0 deletions
diff --git a/source/comp/path.d b/source/comp/path.d
new file mode 100644
index 0000000..b8f9914
--- /dev/null
+++ b/source/comp/path.d
@@ -0,0 +1,33 @@
+module comp.path;
+
+import std.conv;
+import std.regex;
+import std.array;
+
+import std.file : getcwd;
+import std.path : expandTilde;
+import std.algorithm : reverse;
+
+string path(int pathlen) {
+ string ps;
+
+ string home = expandTilde("~");
+ string path = replaceFirst(getcwd(), regex(home), "~");
+
+ string[] splitPath = path.split("/").reverse();
+
+ string[] revSplitPath;
+ for (int i = 0; i < pathlen; i++) {
+ if (i >= splitPath.length)
+ break;
+
+ revSplitPath ~= splitPath[i];
+ }
+
+ splitPath = revSplitPath.reverse();
+
+ ps ~= splitPath.join("/");
+
+ return ps ~ "/";
+
+}