summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhaturatu <warsaw21g@gmail.com>2024-06-25 00:33:30 +0900
committerhaturatu <warsaw21g@gmail.com>2024-06-25 00:33:30 +0900
commitb4307fffd9ef76efc612699a783e76368291f882 (patch)
tree74468d4e3d0c6f411bf22ceccf05f441dcb1ebea /src
parentb9cd005c12ea757533152f2537f0f689f76b4e8b (diff)
fix escape & storage
Diffstat (limited to 'src')
-rw-r--r--src/logo/linux.c122
-rw-r--r--src/storage.c41
2 files changed, 142 insertions, 21 deletions
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 <string.h>
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}'");
}
+