From f0274e6ba6f43d4909f3b0240ba0fad50418debe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Sat, 22 Jun 2024 03:13:21 +0900 Subject: =?UTF-8?q?SunOS:=20=E3=83=AD=E3=82=B4=E3=81=A8=E3=83=87=E3=82=A3?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=83=AD=E6=83=85=E5=A0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cpu.c | 1 - src/distro.c | 3 ++- src/distro.h | 2 +- src/logo/sunos.c | 73 ++++++++++++++++++++++++++++++++++++++++---------------- src/logo/sunos.h | 3 ++- 5 files changed, 57 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/cpu.c b/src/cpu.c index a7e310d..0e282b1 100644 --- a/src/cpu.c +++ b/src/cpu.c @@ -13,7 +13,6 @@ const char *display_cpu() { return run_command_s("sysctl -n machdep.cpu_brand | sed 's/(R)//' | " "sed 's/(TM)//' | sed 's/CPU //' | sed 's/Processor//' && " "echo \" (\" && sysctl -n hw.ncpu && echo \" core)\""); - return run_command_s(""); #elif defined(__FreeBSD__) || defined(__OpenBSD__) return run_command_s("sysctl -n hw.model | sed 's/(R)//' | " "sed 's/(TM)//' | sed 's/CPU //' | sed 's/Processor//' && " diff --git a/src/distro.c b/src/distro.c index 784b76e..fdd8718 100644 --- a/src/distro.c +++ b/src/distro.c @@ -1,4 +1,4 @@ -#if defined(__linux__) +#if defined(__linux__) || defined(__sun) #include "distro.h" #include @@ -85,6 +85,7 @@ void get_distro() { else if (strstr(buf, "Arch Linux") != NULL) distroname = "arch"; else if (strstr(buf, "Artix Linux") != NULL) distroname = "artix"; else if (strstr(buf, "CRUX") != NULL) distroname = "crux"; + else if (strstr(buf, "OmniOS") != NULL) distroname = "omnios"; else distroname = "linux"; } #endif diff --git a/src/distro.h b/src/distro.h index 3dc6eb3..4807840 100644 --- a/src/distro.h +++ b/src/distro.h @@ -1,4 +1,4 @@ -#if defined(__linux__) +#if defined(__linux__) || defined(__sun) #ifndef DISTRO_H #define DISTRO_H diff --git a/src/logo/sunos.c b/src/logo/sunos.c index 7518b0b..b29b485 100644 --- a/src/logo/sunos.c +++ b/src/logo/sunos.c @@ -2,6 +2,7 @@ #include "sunos.h" #include "../resolution.h" +#include #include #include @@ -9,32 +10,62 @@ char *LOGO[23]; char *LOGO_SMALL[23]; const char *color; const char *titlecolor; -size_t logosize = 17; +size_t logosize; int minsize = MIN_SIZE; -void getDistro() { - color = BLUE; - titlecolor = BLUE; +void getDistro(const char *distroname) { const char *res = display_resolution(); if (!res) minsize--; else free((void *)res); - LOGO[0] = WHITE " .sy/ " RESET; - LOGO[1] = WHITE " .yh+ " RESET; - LOGO[2] = WHITE " " RESET; - LOGO[3] = BLUE " " BLUE "-+syyyo+-" WHITE " /+. " RESET; - LOGO[4] = BLUE " " BLUE "+ddo/---/sdh/" WHITE " ym- " RESET; - LOGO[5] = BLUE " " BLUE "`hm+ `sms" WHITE " ym-```````.-. " RESET; - LOGO[6] = BLUE " " BLUE "sm+ sm/" WHITE " ym- +s " RESET; - LOGO[7] = BLUE " " BLUE "hm. /mo" WHITE " ym- /h " RESET; - LOGO[8] = BLUE " " BLUE "omo ym:" WHITE " ym- `os` " RESET; - LOGO[9] = BLUE " " BLUE "smo` .ym+" WHITE " ym- .os- " RESET; - LOGO[10] = WHITE " `` " BLUE ":ymy+///oyms-" WHITE " ym- .+s+. " RESET; - LOGO[11] = WHITE " ..` " BLUE "`:+oo+/-`" WHITE " -//oyo- " RESET; - LOGO[12] = WHITE " -:` .:oys/. " RESET; - LOGO[13] = WHITE "+- `./oyys/. " RESET; - LOGO[14] = WHITE "h+` `.-:+oyyyo/-` " RESET; - LOGO[15] = WHITE "`/ossssysso+/-.` " RESET; - LOGO[16] = WHITE " " RESET; + if (strncmp((char *)distroname, "omnios", strlen("omnios")) == 0) { + color = YELLOW; + titlecolor = YELLOW; + logosize = 12; + + LOGO[0] = GREY " ###### " RESET; + LOGO[1] = GREY " ### ### " RESET; + LOGO[2] = GREY " ## ## " RESET; + LOGO[3] = GREY "## ## " RESET; + LOGO[4] = GREY "## " YELLOW "###### " RESET; + LOGO[5] = GREY " ## " YELLOW "### " GREY "## " YELLOW "### " RESET; + LOGO[6] = GREY " ### " YELLOW "## " GREY "### " YELLOW "## " RESET; + LOGO[7] = GREY " " YELLOW "##" GREY "#### " YELLOW "## " RESET; + LOGO[8] = YELLOW " ## ## " RESET; + LOGO[9] = YELLOW " ## ## " RESET; + LOGO[10] = YELLOW " ### ### " RESET; + LOGO[11] = YELLOW " ###### " RESET; + + LOGO_SMALL[0] = GREY " __ " RESET; + LOGO_SMALL[1] = GREY " / \\ " RESET; + LOGO_SMALL[2] = GREY "| " YELLOW "__ " RESET; + LOGO_SMALL[3] = GREY " \\_" YELLOW "/" GREY "/ " YELLOW "\\ " RESET; + LOGO_SMALL[4] = YELLOW " | | " RESET; + LOGO_SMALL[5] = YELLOW " \\__/ " RESET; + for (int i = 6; i < minsize; i++) { + LOGO_SMALL[i] = YELLOW " " RESET; + } + } else { + color = BLUE; + titlecolor = BLUE; + + LOGO[0] = WHITE " .sy/ " RESET; + LOGO[1] = WHITE " .yh+ " RESET; + LOGO[2] = WHITE " " RESET; + LOGO[3] = BLUE " " BLUE "-+syyyo+-" WHITE " /+. " RESET; + LOGO[4] = BLUE " " BLUE "+ddo/---/sdh/" WHITE " ym- " RESET; + LOGO[5] = BLUE " " BLUE "`hm+ `sms" WHITE " ym-```````.-. " RESET; + LOGO[6] = BLUE " " BLUE "sm+ sm/" WHITE " ym- +s " RESET; + LOGO[7] = BLUE " " BLUE "hm. /mo" WHITE " ym- /h " RESET; + LOGO[8] = BLUE " " BLUE "omo ym:" WHITE " ym- `os` " RESET; + LOGO[9] = BLUE " " BLUE "smo` .ym+" WHITE " ym- .os- " RESET; + LOGO[10] = WHITE " `` " BLUE ":ymy+///oyms-" WHITE " ym- .+s+. " RESET; + LOGO[11] = WHITE " ..` " BLUE "`:+oo+/-`" WHITE " -//oyo- " RESET; + LOGO[12] = WHITE " -:` .:oys/. " RESET; + LOGO[13] = WHITE "+- `./oyys/. " RESET; + LOGO[14] = WHITE "h+` `.-:+oyyyo/-` " RESET; + LOGO[15] = WHITE "`/ossssysso+/-.` " RESET; + LOGO[16] = WHITE " " RESET; + } } #endif diff --git a/src/logo/sunos.h b/src/logo/sunos.h index 9d42d13..970f819 100644 --- a/src/logo/sunos.h +++ b/src/logo/sunos.h @@ -3,6 +3,7 @@ #define LOGO_SUNOS_H #include +#include "../distro.h" #include "colors.h" extern char *LOGO[23]; @@ -11,7 +12,7 @@ extern const char *color; extern const char *titlecolor; extern size_t logosize; -void getDistro(); +void getDistro(const char *distroname); #endif #endif -- cgit v1.2.3