aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-09-01 08:13:05 +0000
committer_ov4 <ov4@ov4.org>2026-09-01 08:13:05 +0000
commit3827fc4543f55ff33ed657625b68ca628917188c (patch)
treec90a85a93b9457c3683b42a9bac390882e670455
parent9a09c0bfc5956ed57fa4c26f84babb6778fa8a34 (diff)
hostname support
-rw-r--r--include/util/prompt.h5
-rw-r--r--src/util/prompt.cc20
2 files changed, 23 insertions, 2 deletions
diff --git a/include/util/prompt.h b/include/util/prompt.h
index 464156a..6cdcfb8 100644
--- a/include/util/prompt.h
+++ b/include/util/prompt.h
@@ -6,8 +6,11 @@
namespace ov4
{
- constexpr std::string_view prompt = "$";
+ constexpr std::string_view prompt_normal = "$";
+ constexpr std::string_view prompt_root = "#";
+ constexpr size_t hostname_size = 128;
extern bool emit_prompt;
void print_prompt();
+ std::string get_prompt();
}
diff --git a/src/util/prompt.cc b/src/util/prompt.cc
index 8f4e5e1..977cb0b 100644
--- a/src/util/prompt.cc
+++ b/src/util/prompt.cc
@@ -10,7 +10,25 @@ namespace ov4
{
if (emit_prompt)
{
- cout << name << " : " << get_current_dir() << " " << prompt << " " << flush;
+ char buffer[hostname_size];
+ gethostname(buffer, hostname_size);
+ cout
+ << name
+ << " "
+ << getlogin()
+ << "@"
+ << buffer
+ << ":"
+ << get_current_dir()
+ << " "
+ << get_prompt()
+ << " "
+ << flush;
}
}
+
+ string get_prompt()
+ {
+ return (string)((string)(getlogin()) == "root" ? prompt_root : prompt_normal);
+ }
}