From b4307fffd9ef76efc612699a783e76368291f882 Mon Sep 17 00:00:00 2001 From: haturatu Date: Tue, 25 Jun 2024 00:33:30 +0900 Subject: fix escape & storage --- src/logo/linux.c | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/storage.c | 41 +++++++++---------- 2 files changed, 142 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/logo/linux.c b/src/logo/linux.c index 7d9cb89..0e2545f 100644 --- a/src/logo/linux.c +++ b/src/logo/linux.c @@ -265,6 +265,96 @@ void getDistro(const char *distroname) { for (int i = 7; i < minsize; i++) { LOGO_SMALL[i] = MAGENTA " " RESET; } + } else if (strncmp((char *)distroname, "linuxmint", strlen("linuxmint")) == 0) { + color = GREEN; + titlecolor = GREEN; + logosize = 19; + + LOGO[0] = WHITE " ...-:::::-... " RESET; + LOGO[1] = WHITE " .-MMMMMMMMMMMMMMM-. " RESET; + LOGO[2] = WHITE " .-MMMM" GREEN "`..-:::::::-..`" WHITE "MMMM-. " RESET; + LOGO[3] = WHITE " .:MMMM" GREEN ".:MMMMMMMMMMMMMMM:." WHITE "MMMM:. " RESET; + LOGO[4] = WHITE " -MMM" GREEN "-M---MMMMMMMMMMMMMMMMMMM." WHITE "MMM- " RESET; + LOGO[5] = WHITE " `:MMM" GREEN ":MM` :MMMM:....::-...-MMMM:" WHITE "MMM:` " RESET; + LOGO[6] = WHITE " :MMM" GREEN ":MMM` :MM:` `` `` `:MMM:" WHITE "MMM: " RESET; + LOGO[7] = WHITE ".MMM" GREEN ".MMMM` :MM. -MM. .MM- `MMMM." WHITE "MMM. " RESET; + LOGO[8] = WHITE ":MMM" GREEN ":MMMM` :MM. -MM- .MM: `MMMM-" WHITE "MMM: " RESET; + LOGO[9] = WHITE ":MMM" GREEN ":MMMM` :MM. -MM- .MM: `MMMM:" WHITE "MMM: " RESET; + LOGO[10] = WHITE ":MMM" GREEN ":MMMM` :MM. -MM- .MM: `MMMM-" WHITE "MMM: " RESET; + LOGO[11] = WHITE ".MMM" GREEN ".MMMM` :MM:--:MM:--:MM: `MMMM." WHITE "MMM. " RESET; + LOGO[12] = WHITE " :MMM" GREEN ":MMM- `-MMMMMMMMMMMM-` -MMM-" WHITE "MMM: " RESET; + LOGO[13] = WHITE " :MMM" GREEN ":MMM:` `:MMM:" WHITE "MMM: " RESET; + LOGO[14] = WHITE " .MMM" GREEN ".MMMM:--------------:MMMM." WHITE "MMM. " RESET; + LOGO[15] = WHITE " '-MMMM" GREEN ".-MMMMMMMMMMMMMMM-." WHITE "MMMM-' " RESET; + LOGO[16] = WHITE " '.-MMMM" GREEN "``--:::::--``" WHITE "MMMM-.' " RESET; + LOGO[17] = WHITE " '-MMMMMMMMMMMMM-' " RESET; + LOGO[18] = WHITE " ``-:::::-`` " RESET; + + LOGO_SMALL[0] = GREEN " ___________ " RESET; + LOGO_SMALL[1] = GREEN "|_ \\ " RESET; + LOGO_SMALL[2] = GREEN " | " WHITE "| _____ " GREEN "| " RESET; + LOGO_SMALL[3] = GREEN " | " WHITE "| | | | " GREEN "| " RESET; + LOGO_SMALL[4] = GREEN " | " WHITE "| | | | " GREEN "| " RESET; + LOGO_SMALL[5] = GREEN " | " WHITE "\\_____/ " GREEN "| " RESET; + LOGO_SMALL[6] = GREEN " \\_________/ " RESET; + } else if (strncmp((char *)distroname, "manjaro", strlen("manjaro")) == 0) { + color = GREEN; + titlecolor = GREEN; + logosize = 14; + + LOGO[0] = GREEN "██████████████████ ████████ " RESET; + LOGO[1] = GREEN "██████████████████ ████████ " RESET; + LOGO[2] = GREEN "██████████████████ ████████ " RESET; + LOGO[3] = GREEN "██████████████████ ████████ " RESET; + LOGO[4] = GREEN "████████ ████████ " RESET; + LOGO[5] = GREEN "████████ ████████ ████████ " RESET; + LOGO[6] = GREEN "████████ ████████ ████████ " RESET; + LOGO[7] = GREEN "████████ ████████ ████████ " RESET; + LOGO[8] = GREEN "████████ ████████ ████████ " RESET; + LOGO[9] = GREEN "████████ ████████ ████████ " RESET; + LOGO[10] = GREEN "████████ ████████ ████████ " RESET; + LOGO[11] = GREEN "████████ ████████ ████████ " RESET; + LOGO[12] = GREEN "████████ ████████ ████████ " RESET; + LOGO[13] = GREEN "████████ ████████ ████████ " RESET; + + LOGO_SMALL[0] = GREEN "||||||||| |||| " RESET; + LOGO_SMALL[1] = GREEN "||||||||| |||| " RESET; + LOGO_SMALL[2] = GREEN "|||| |||| " RESET; + LOGO_SMALL[3] = GREEN "|||| |||| |||| " RESET; + LOGO_SMALL[4] = GREEN "|||| |||| |||| " RESET; + LOGO_SMALL[5] = GREEN "|||| |||| |||| " RESET; + LOGO_SMALL[6] = GREEN "|||| |||| |||| " RESET; + } else if (strncmp((char *)distroname, "opensuse", strlen("opensuse")) == 0) { + color = GREEN; + titlecolor = GREEN; + logosize = 18; + + LOGO[0] = WHITE " .;ldkO0000Okdl;. " RESET; + LOGO[1] = WHITE " .;d00xl:^''''''^:ok00d;. " RESET; + LOGO[2] = WHITE " .d00l' 'o00d. " RESET; + LOGO[3] = WHITE " .d0Kd' " GREEN "Okxol:;,." WHITE " :O0d. " RESET; + LOGO[4] = WHITE " .OK" GREEN "KKK0kOKKKKKKKKKKOxo:," WHITE " lKO. " RESET; + LOGO[5] = WHITE " ,0K" GREEN "KKKKKKKKKKKKKKK0P^,,,^dx:" WHITE " ;00, " RESET; + LOGO[6] = WHITE ".OK" GREEN "KKKKKKKKKKKKKKKk'.oOPPb.'0k." WHITE " cKO. " RESET; + LOGO[7] = WHITE ":KK" GREEN "KKKKKKKKKKKKKKK: kKx..dd lKd" WHITE " 'OK: " RESET; + LOGO[8] = WHITE "dKK" GREEN "KKKKKKKKKOx0KKKd ^0KKKO' kKKc" WHITE " dKd " RESET; + LOGO[9] = WHITE "dKK" GREEN "KKKKKKKKKK;.;oOKx,..^..;kKKK0." WHITE " dKd " RESET; + LOGO[10] = WHITE ":KK" GREEN "KKKKKKKKKK0o;...^cdxxOK0O/^^'" WHITE " .0K: " RESET; + LOGO[11] = WHITE " kKK" GREEN "KKKKKKKKKKKKK0x;,,......,;od" WHITE " lKk " RESET; + LOGO[12] = WHITE " '0K" GREEN "KKKKKKKKKKKKKKKKKKKK00KKOo^" WHITE " c00' " RESET; + LOGO[13] = WHITE " 'kK" GREEN "KKOxddxkOO00000Okxoc;''" WHITE " .dKk' " RESET; + LOGO[14] = WHITE " l0Ko. .c00l' " RESET; + LOGO[15] = WHITE " 'l0Kk:. .;xK0l' " RESET; + LOGO[16] = WHITE " 'lkK0xl:;,,,,;:ldO0kl' " RESET; + LOGO[17] = WHITE " '^:ldxkkkkxdl:^' " RESET; + + LOGO_SMALL[0] = GREEN " _______ " RESET; + LOGO_SMALL[1] = GREEN "__| __ \\ " RESET; + LOGO_SMALL[2] = GREEN " / .\\ \\ " RESET; + LOGO_SMALL[3] = GREEN " \\__/ | " RESET; + LOGO_SMALL[4] = GREEN " _______| " RESET; + LOGO_SMALL[5] = GREEN " \\_______ " RESET; + LOGO_SMALL[6] = GREEN "__________/ " RESET; } else if ( strncmp((char *)distroname, "postmarketos", @@ -307,6 +397,38 @@ void getDistro(const char *distroname) { for (int i = 9; i < minsize; i++) { LOGO_SMALL[i] = GREEN " " RESET; } + } else if (strncmp((char *)distroname, "opensuse", strlen("opensuse")) == 0) { + color = RED; + titlecolor = RED; + logosize = 20; + + LOGO[0] = RED " .-/+oossssoo+/-. " RESET; + LOGO[1] = RED " `:+ssssssssssssssssss+:` " RESET; + LOGO[2] = RED " -+ssssssssssssssssssyyssss+- " RESET; + LOGO[3] = RED " .ossssssssssssssssssdMMMNysssso. " RESET; + LOGO[4] = RED " /ssssssssssshdmmNNmmyNMMMMhssssss/ " RESET; + LOGO[5] = RED " +ssssssssshmydMMMMMMMNddddyssssssss+ " RESET; + LOGO[6] = RED " /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ " RESET; + LOGO[7] = RED ".ssssssssdMMMNhsssssssssshNMMMdssssssss. " RESET; + LOGO[8] = RED "+sssshhhyNMMNyssssssssssssyNMMMysssssss+ " RESET; + LOGO[9] = RED "ossyNMMMNyMMhsssssssssssssshmmmhssssssso " RESET; + LOGO[10] = RED "ossyNMMMNyMMhsssssssssssssshmmmhssssssso " RESET; + LOGO[11] = RED "+sssshhhyNMMNyssssssssssssyNMMMysssssss+ " RESET; + LOGO[12] = RED ".ssssssssdMMMNhsssssssssshNMMMdssssssss. " RESET; + LOGO[13] = RED " /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ " RESET; + LOGO[14] = RED " +sssssssssdmydMMMMMMMMddddyssssssss+ " RESET; + LOGO[15] = RED " /ssssssssssshdmNNNNmyNMMMMhssssss/ " RESET; + LOGO[16] = RED " .ossssssssssssssssssdMMMNysssso. " RESET; + LOGO[17] = RED " -+sssssssssssssssssyyyssss+- " RESET; + LOGO[18] = RED " `:+ssssssssssssssssss+:` " RESET; + LOGO[19] = RED " .-/+oossssoo+/-. " RESET; + + LOGO_SMALL[0] = RED " _ " RESET; + LOGO_SMALL[1] = RED " ---(_) " RESET; + LOGO_SMALL[2] = RED " _/ --- \\ " RESET; + LOGO_SMALL[3] = RED "(_) | | " RESET; + LOGO_SMALL[4] = RED " \\ --- _/ " RESET; + LOGO_SMALL[5] = RED " ---(_) " RESET; } else if (strncmp((char *)distroname, "void", strlen("void")) == 0) { color = WHITE; titlecolor = GREEN; diff --git a/src/storage.c b/src/storage.c index 1924acf..5500e93 100644 --- a/src/storage.c +++ b/src/storage.c @@ -4,27 +4,26 @@ #include const char *display_storage() { - const char *iszfs = run_command_s("LC_ALL=C zpool list 2>&1"); - if ( - strncmp( - iszfs, - "sh: command not found: zpool", - strlen("sh: command not found: zpool") - ) == 0 || - strncmp( - iszfs, - "internal error: failed to initialize ZFS library", - strlen("internal error: failed to initialize ZFS library") - ) == 0 || - strncmp(iszfs, "sh: zpool: not found", strlen("sh: zpool: not found")) == 0 || - strncmp(iszfs, "sh: 1: zpool: not found", strlen("sh: 1: zpool: not found")) == 0 - ) { + const char *excode = run_command_s("LC_ALL=C zpool list 2>/dev/null || echo $?"); + + if (excode != NULL && strcmp(excode, "127") == 0) { return run_command_s("df -h | " - "awk '/^\\/dev\\// {printf \"%s: %s / %s, \", $1, $3, $2}' | " - "awk '{sub(/, $/, \"\"); print}'"); + "awk '/^\\/dev\\// {printf \"%s: %s / %s, \", $1, $3, $2}' | " + "awk '{sub(/, $/, \"\"); print}'"); + } else { + const char *iszfs = run_command_s("LC_ALL=C zpool list 2>&1"); + if ( + strncmp(iszfs, "sh: zpool: not found", strlen("sh: zpool: not found")) == 0 || + strncmp(iszfs, "sh: 1: zpool: not found", strlen("sh: 1: zpool: not found")) == 0 + ) { + return run_command_s("df -h | " + "awk '/^\\/dev\\// {printf \"%s: %s / %s, \", $1, $3, $2}' | " + "awk '{sub(/, $/, \"\"); print}'"); + } else { + return run_command_s("zpool list | " + "awk 'NR>1 {printf \"%s: %s / %s, \", $1, $3, $2}' | " + "awk '{sub(/, $/, \"\"); print}'"); + } } - - return run_command_s("zpool list | " - "awk 'NR>1 {printf \"%s: %s / %s, \", $1, $3, $2}' | " - "awk '{sub(/, $/, \"\"); print}'"); } + -- cgit v1.2.3