From 511ed4c4de349dd62dc302c9d46603aaeaf19f3d Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 31 Oct 2018 01:21:56 +0100 Subject: [PATCH] Snazz up the sh prompt a bit. Add the current tty to it. --- Kernel/init.cpp | 8 -------- Userland/sh.cpp | 8 ++++++-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Kernel/init.cpp b/Kernel/init.cpp index 11eebe6ef9..115eafe35c 100644 --- a/Kernel/init.cpp +++ b/Kernel/init.cpp @@ -40,12 +40,6 @@ VirtualConsole* tty2; VirtualConsole* tty3; Keyboard* keyboard; -void banner() -{ - InterruptDisabler disabler; - kprintf("\n\033[33;1mWelcome to \033[36;1mSerenity OS!\033[0m\n\n"); -} - static byte parseHexDigit(char nibble) { if (nibble >= '0' && nibble <= '9') @@ -191,8 +185,6 @@ static void init_stage2() } #endif - banner(); - int error; auto* sh0 = Task::createUserTask("/bin/sh", (uid_t)100, (gid_t)100, (pid_t)0, error, nullptr, tty0); auto* sh1 = Task::createUserTask("/bin/sh", (uid_t)100, (gid_t)100, (pid_t)0, error, nullptr, tty1); diff --git a/Userland/sh.cpp b/Userland/sh.cpp index 523a41119b..ecf62221c9 100644 --- a/Userland/sh.cpp +++ b/Userland/sh.cpp @@ -9,6 +9,7 @@ struct GlobalState { String cwd; + char ttyname[32]; char hostname[32]; }; static GlobalState* g; @@ -18,7 +19,7 @@ static void prompt() if (getuid() == 0) printf("# "); else - printf("(%u) \033[32;1m%s\033[0m:\033[34;1m%s\033[0m$> ", getpid(), g->hostname, g->cwd.characters()); + printf("\033[31;1m%s\033[0m:\033[37;1m%s\033[0m:\033[32;1m%s\033[0m$> ", g->ttyname, g->hostname, g->cwd.characters()); } static int sh_pwd(int, const char**) @@ -157,7 +158,7 @@ static void greeting() perror("uname"); return; } - printf("\n%s/%s on %s\n\n", uts.sysname, uts.machine, ttyname(0)); + printf("\n%s/%s on %s\n\n", uts.sysname, uts.machine, g->ttyname); } int main(int, char**) @@ -166,6 +167,9 @@ int main(int, char**) int rc = gethostname(g->hostname, sizeof(g->hostname)); if (rc < 0) perror("gethostname"); + rc = ttyname_r(0, g->ttyname, sizeof(g->ttyname)); + if (rc < 0) + perror("ttyname_r"); greeting();