diff options
author | Shav Kinderlehrer <[email protected]> | 2023-08-09 16:33:14 -0400 |
---|---|---|
committer | Shav Kinderlehrer <[email protected]> | 2023-08-09 16:33:14 -0400 |
commit | db53ee6c3bdd8d14c196f06b6377f2418779f82d (patch) | |
tree | b06d6b9f6b3d170b67e8bd56f8f40dd4e59ff9e0 /source/prompt/rps1.d | |
parent | 85f830ce4730da0489bc14d8726de7fb2dd0fc38 (diff) | |
download | prim-db53ee6c3bdd8d14c196f06b6377f2418779f82d.tar.gz prim-db53ee6c3bdd8d14c196f06b6377f2418779f82d.zip |
Add path parsing
Diffstat (limited to 'source/prompt/rps1.d')
-rw-r--r-- | source/prompt/rps1.d | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/source/prompt/rps1.d b/source/prompt/rps1.d index 5ee5d2c..9ec5ac7 100644 --- a/source/prompt/rps1.d +++ b/source/prompt/rps1.d @@ -1,6 +1,12 @@ module prompt.rps1; import std.conv; +import std.regex; +import std.array; + +import std.file : getcwd; +import std.path : expandTilde; +import std.algorithm : reverse; import prim.opt; @@ -11,9 +17,22 @@ import style.font; string rps1(Opts opt) { string ps; - // previous command status - ps ~= ("(" ~ to!string(opt.status) ~ ") ").set(Color.black); + string home = expandTilde("~"); + string path = replaceFirst(getcwd(), regex(home), "~"); - return ps; -} + string[] splitPath = path.split("/").reverse(); + + string[] revSplitPath; + for (int i = 0; i < opt.pathlen; i++) { + if (i >= splitPath.length) + break; + + revSplitPath ~= splitPath[i]; + } + splitPath = revSplitPath.reverse(); + + ps ~= splitPath.join("/"); + + return ps.set(Font.italic).set(Color.yellow); +} |