summaryrefslogtreecommitdiff
path: root/src/logo
diff options
context:
space:
mode:
author諏訪子 <suwako@076.moe>2024-06-19 19:38:19 +0900
committer諏訪子 <suwako@076.moe>2024-06-19 19:38:19 +0900
commit9941a4d3d29f99a46e7f27bcad3653af87e26731 (patch)
tree4bed2c208d6df291feae0c40b0de6d2dd9bb4e56 /src/logo
parentc73167415c76ec418fa2aa3ef45df6b3e0d55df8 (diff)
ロゴのコードの再書
Diffstat (limited to 'src/logo')
-rw-r--r--src/logo/colors.h16
-rw-r--r--src/logo/freebsd.c47
-rw-r--r--src/logo/freebsd.h42
-rw-r--r--src/logo/linux.c384
-rw-r--r--src/logo/linux.h366
-rw-r--r--src/logo/linux_def.c75
-rw-r--r--src/logo/linux_def.h6
-rw-r--r--src/logo/netbsd.c48
-rw-r--r--src/logo/netbsd.h43
-rw-r--r--src/logo/openbsd.c55
-rw-r--r--src/logo/openbsd.h54
-rw-r--r--src/logo/openindiana.c38
-rw-r--r--src/logo/openindiana.h34
13 files changed, 627 insertions, 581 deletions
diff --git a/src/logo/colors.h b/src/logo/colors.h
new file mode 100644
index 0000000..496f3c3
--- /dev/null
+++ b/src/logo/colors.h
@@ -0,0 +1,16 @@
+#ifndef LOGO_COLORS_H
+#define LOGO_COLORS_H
+
+#define LOGO_SIZE 23
+
+#define GREY "\e[1;30m"
+#define RED "\e[1;31m"
+#define GREEN "\e[1;32m"
+#define YELLOW "\e[1;33m"
+#define BLUE "\e[1;34m"
+#define MAGENTA "\e[1;35m"
+#define CYAN "\e[1;36m"
+#define WHITE "\e[1;37m"
+#define RESET "\e[0m"
+
+#endif
diff --git a/src/logo/freebsd.c b/src/logo/freebsd.c
new file mode 100644
index 0000000..0183cff
--- /dev/null
+++ b/src/logo/freebsd.c
@@ -0,0 +1,47 @@
+#if defined(__FreeBSD__)
+#include "openbsd.h"
+
+#include <string.h>
+
+char *LOGO[23];
+char *LOGO_SMALL[23];
+const char *color;
+const char *titlecolor;
+
+void getOS() {
+ color = RED;
+ titlecolor = RED;
+
+ LOGO[0] = WHITE "``` " RED "` " RESET;
+ LOGO[1] = WHITE " ` `.....---..." RED "....--.``` -/ " RESET;
+ LOGO[2] = WHITE " +o .--` " RED "/y:` +. " RESET;
+ LOGO[3] = WHITE " yo`:. " RED ":o `+- " RESET;
+ LOGO[4] = WHITE " y/ " RED "-/` -o/ " RESET;
+ LOGO[7] = WHITE " .- " RED "::/sy+:. " RESET;
+ LOGO[8] = WHITE " / " RED "`-- / " RESET;
+ LOGO[9] = WHITE " `: " RED ":` " RESET;
+ LOGO[10] = WHITE " `: " RED ":` " RESET;
+ LOGO[11] = WHITE " / " RED "/ " RESET;
+ LOGO[12] = WHITE " .- " RED "-. " RESET;
+ LOGO[13] = WHITE " -- " RED "-. " RESET;
+ LOGO[14] = WHITE " `:` " RED "`:` " RESET;
+ LOGO[15] = RED " .-- `--. " RESET;
+ LOGO[16] = RED " .---.....----. " RESET;
+ LOGO[17] = RED " " RESET;
+ LOGO[18] = RED " " RESET;
+ LOGO[19] = RED " " RESET;
+ for (int i = 20; i < 23; i++) {
+ LOGO[i] = RED " " 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;
+ for (int i = 6; i < 23; i++) {
+ LOGO_SMALL[i] = RED " " RESET;
+ }
+}
+#endif
diff --git a/src/logo/freebsd.h b/src/logo/freebsd.h
index ae154d1..b6ab8ec 100644
--- a/src/logo/freebsd.h
+++ b/src/logo/freebsd.h
@@ -1,41 +1,15 @@
+#if defined(__FreeBSD__)
#ifndef LOGO_FREEBSD_H
#define LOGO_FREEBSD_H
-#define RED "\e[1;31m"
-#define WHITE "\e[1;37m"
-#define RESET "\e[0m"
+#include "colors.h"
-#define COLOR RED
-#define TITLECOLOR RED
+extern char *LOGO[23];
+extern char *LOGO_SMALL[23];
+extern const char *color;
+extern const char *titlecolor;
-char *LOGO[] = {
-WHITE "``` " RED "` " RESET,
-WHITE " ` `.....---..." RED "....--.``` -/ " RESET,
-WHITE " +o .--` " RED "/y:` +. " RESET,
-WHITE " yo`:. " RED ":o `+- " RESET,
-WHITE " y/ " RED "-/` -o/ " RESET,
-WHITE " .- " RED "::/sy+:. " RESET,
-WHITE " / " RED "`-- / " RESET,
-WHITE " `: " RED ":` " RESET,
-WHITE " `: " RED ":` " RESET,
-WHITE " / " RED "/ " RESET,
-WHITE " .- " RED "-. " RESET,
-WHITE " -- " RED "-. " RESET,
-WHITE " `:` " RED "`:` " RESET,
-RED " .-- `--. " RESET,
-RED " .---.....----. " RESET,
-RED " " RESET,
-RED " " RESET,
-RED " " RESET
-};
-
-char *LOGO_SMALL[] = {
-RED "/\\,-'''''-,/\\ " RESET,
-RED "\\_) (_/ " RESET,
-RED "| | " RESET,
-RED "| | " RESET,
-RED " ; ; " RESET,
-RED " '-_____-' " RESET
-};
+void getOS();
#endif
+#endif
diff --git a/src/logo/linux.c b/src/logo/linux.c
new file mode 100644
index 0000000..1f16959
--- /dev/null
+++ b/src/logo/linux.c
@@ -0,0 +1,384 @@
+#if defined(__linux__)
+#include "linux.h"
+
+#include <string.h>
+
+char *LOGO[23];
+char *LOGO_SMALL[23];
+const char *color;
+const char *titlecolor;
+
+void getDistro(const char *distroname) {
+ if (strncmp((char *)distroname, "alpine", strlen("alpine")) == 0) {
+ color = MAGENTA;
+ titlecolor = BLUE;
+
+ LOGO[0] = BLUE " .hddddddddddddddddddddddh. " RESET;
+ LOGO[1] = BLUE " :dddddddddddddddddddddddddd: " RESET;
+ LOGO[2] = BLUE " /dddddddddddddddddddddddddddd/ " RESET;
+ LOGO[3] = BLUE " +dddddddddddddddddddddddddddddd+ " RESET;
+ LOGO[4] = BLUE " `sdddddddddddddddddddddddddddddddds` " RESET;
+ LOGO[5] = BLUE " `ydddddddddddd++hdddddddddddddddddddy` " RESET;
+ LOGO[6] = BLUE ".hddddddddddd+` `+ddddh:-sdddddddddddh. " RESET;
+ LOGO[7] = BLUE "hdddddddddd+` `+y: .sddddddddddh " RESET;
+ LOGO[8] = BLUE "ddddddddh+` `//` `.` -sddddddddd " RESET;
+ LOGO[9] = BLUE "ddddddh+` `/hddh/` `:s- -sddddddd " RESET;
+ LOGO[10] = BLUE "ddddh+` `/+/dddddh/` `+s- -sddddd " RESET;
+ LOGO[11] = BLUE "ddd+` `/o` :dddddddh/` `oy- .yddd " RESET;
+ LOGO[12] = BLUE "hdddyo+ohddyosdddddddddho+oydddy++ohdddh " RESET;
+ LOGO[13] = BLUE ".hddddddddddddddddddddddddddddddddddddh. " RESET;
+ LOGO[14] = BLUE " `yddddddddddddddddddddddddddddddddddy` " RESET;
+ LOGO[15] = BLUE " `sdddddddddddddddddddddddddddddddds` " RESET;
+ LOGO[16] = BLUE " +dddddddddddddddddddddddddddddd+ " RESET;
+ LOGO[17] = BLUE " /dddddddddddddddddddddddddddd/ " RESET;
+ LOGO[18] = BLUE " :dddddddddddddddddddddddddd: " RESET;
+ LOGO[19] = BLUE " .hddddddddddddddddddddddh. " RESET;
+ for (int i = 20; i < 23; i++) {
+ LOGO[i] = BLUE " " RESET;
+ }
+
+ LOGO_SMALL[0] = BLUE " /\\ /\\ " RESET;
+ LOGO_SMALL[1] = BLUE " /" WHITE "/ " BLUE "\\ \\ " RESET;
+ LOGO_SMALL[2] = BLUE " /" WHITE "/ " BLUE "\\ \\ " RESET;
+ LOGO_SMALL[3] = BLUE "/" WHITE "// " BLUE "\\ \\ " RESET;
+ LOGO_SMALL[4] = WHITE "// " BLUE "\\ \\ " RESET;
+ LOGO_SMALL[5] = BLUE " \\ " RESET;
+ for (int i = 6; i < 23; i++) {
+ LOGO_SMALL[i] = BLUE " " RESET;
+ }
+ } else if (strncmp((char *)distroname, "artix", strlen("artix")) == 0) {
+ color = CYAN;
+ titlecolor = CYAN;
+
+ LOGO[0] = CYAN " -` " RESET;
+ LOGO[1] = CYAN " .o+` " RESET;
+ LOGO[2] = CYAN " `ooo/ " RESET;
+ LOGO[3] = CYAN " `+oooo: " RESET;
+ LOGO[4] = CYAN " `+oooooo: " RESET;
+ LOGO[5] = CYAN " -+oooooo+: " RESET;
+ LOGO[6] = CYAN " `/:-:++oooo+: " RESET;
+ LOGO[7] = CYAN " `/++++/+++++++: " RESET;
+ LOGO[8] = CYAN " `/++++++++++++++: " RESET;
+ LOGO[9] = CYAN " `/+++ooooooooooooo/` " RESET;
+ LOGO[10] = CYAN " ./ooosssso++osssssso+` " RESET;
+ LOGO[11] = CYAN " .oossssso-````/ossssss+` " RESET;
+ LOGO[12] = CYAN " -osssssso. :ssssssso. " RESET;
+ LOGO[13] = CYAN " :osssssss/ osssso+++. " RESET;
+ LOGO[14] = CYAN " /ossssssss/ +ssssooo/- " RESET;
+ LOGO[15] = CYAN " `/ossssso+/:- -:/+osssso+- " RESET;
+ LOGO[16] = CYAN " `+sso+:-` `.-/+oso: " RESET;
+ LOGO[17] = CYAN "`++:. `-/+/ " RESET;
+ LOGO[18] = CYAN ".` `/ " RESET;
+ for (int i = 19; i < 23; i++) {
+ LOGO[i] = CYAN " " RESET;
+ }
+
+ LOGO_SMALL[0] = CYAN " /\\ " RESET;
+ LOGO_SMALL[1] = CYAN " / \\ " RESET;
+ LOGO_SMALL[2] = CYAN " /\\ \\ " RESET;
+ LOGO_SMALL[3] = WHITE " / \\ " RESET;
+ LOGO_SMALL[4] = WHITE " / ,, \\ " RESET;
+ LOGO_SMALL[5] = WHITE " / | | -\\ " RESET;
+ LOGO_SMALL[6] = WHITE "/_-'' ''-_\\ " RESET;
+ for (int i = 7; i < 23; i++) {
+ LOGO_SMALL[i] = CYAN " " RESET;
+ }
+ } else if (strncmp((char *)distroname, "arch", strlen("arch")) == 0) {
+ color = CYAN;
+ titlecolor = CYAN;
+
+ LOGO[0] = CYAN " ' " RESET;
+ LOGO[1] = CYAN " 'o' " RESET;
+ LOGO[2] = CYAN " 'ooo' " RESET;
+ LOGO[3] = CYAN " 'ooxoo' " RESET;
+ LOGO[4] = CYAN " 'ooxxxoo' " RESET;
+ LOGO[5] = CYAN " 'oookkxxoo' " RESET;
+ LOGO[6] = CYAN " 'oiioxkkxxoo' " RESET;
+ LOGO[7] = CYAN " ':;:iiiioxxxoo' " RESET;
+ LOGO[8] = CYAN " `'.;::ioxxoo' " RESET;
+ LOGO[9] = CYAN " '-. `':;jiooo' " RESET;
+ LOGO[10] = CYAN " 'oooio-.. `'i:io' " RESET;
+ LOGO[11] = CYAN " 'ooooxxxxoio:,. `'-;' " RESET;
+ LOGO[12] = CYAN " 'ooooxxxxxkkxoooIi:-. `' " RESET;
+ LOGO[13] = CYAN " 'ooooxxxxxkkkkxoiiiiiji' " RESET;
+ LOGO[14] = CYAN " 'ooooxxxxxkxxoiiii:'` .i' " RESET;
+ LOGO[15] = CYAN " 'ooooxxxxxoi:::'` .;ioxo' " RESET;
+ LOGO[16] = CYAN " 'ooooxooi::'` .:iiixkxxo' " RESET;
+ LOGO[17] = CYAN " 'ooooi:'` `'';ioxxo' " RESET;
+ LOGO[18] = CYAN " 'i:'` '':io' " RESET;
+ LOGO[19] = CYAN "'` `' " RESET;
+ for (int i = 20; i < 23; i++) {
+ LOGO[i] = CYAN " " RESET;
+ }
+
+ LOGO_SMALL[0] = CYAN " /\\ " RESET;
+ LOGO_SMALL[1] = CYAN " / \\ " RESET;
+ LOGO_SMALL[2] = CYAN " /`'.,\\ " RESET;
+ LOGO_SMALL[3] = CYAN " / ', " RESET;
+ LOGO_SMALL[4] = CYAN " / ,`\\ " RESET;
+ LOGO_SMALL[5] = CYAN " / ,.'`. \\ " RESET;
+ LOGO_SMALL[6] = CYAN "/.,'` `'.\\ " RESET;
+ for (int i = 7; i < 23; i++) {
+ LOGO_SMALL[i] = CYAN " " RESET;
+ }
+ } else if (strncmp((char *)distroname, "crux", strlen("crux")) == 0) {
+ color = MAGENTA;
+ titlecolor = BLUE;
+
+ LOGO[0] = BLUE " odddd " RESET;
+ LOGO[1] = BLUE " oddxkkkxxdoo " RESET;
+ LOGO[2] = BLUE " ddcoddxxxdoool " RESET;
+ LOGO[3] = BLUE " xdclodod olol " RESET;
+ LOGO[4] = BLUE " xoc xdd olol " RESET;
+ LOGO[5] = BLUE " xdc " MAGENTA "k00" BLUE "Okdlol " RESET;
+ LOGO[6] = BLUE " xxd" MAGENTA "kOKKKOkd" BLUE "ldd " RESET;
+ LOGO[7] = BLUE " xdco" MAGENTA "xOkdlo" BLUE "dldd " RESET;
+ LOGO[8] = BLUE " ddc:cl" MAGENTA "lll" BLUE "oooodo " RESET;
+ LOGO[9] = BLUE " odxxdd" WHITE "xkO000kx" BLUE "ooxdo " RESET;
+ LOGO[10] = BLUE " oxdd" WHITE "x0NMMMMMMWW0od" BLUE "kkxo " RESET;
+ LOGO[11] = BLUE " oooxd" WHITE "0WMMMMMMMMMW0o" BLUE "dxkx " RESET;
+ LOGO[12] = BLUE "docldkXW" WHITE "MMMMMMMWWN" BLUE "Odolco " RESET;
+ LOGO[13] = BLUE "xx" MAGENTA "dx" BLUE "kxxOKN" WHITE "WMMWN" BLUE "0xdoxo::c " RESET;
+ LOGO[14] = MAGENTA "xOkkO" BLUE "0oo" WHITE "odOW" MAGENTA "WW" BLUE "XkdodOxc:l " RESET;
+ LOGO[15] = MAGENTA "dkkkxkkk" WHITE "OKX" MAGENTA "NNNX0Oxx" BLUE "xc:cd " RESET;
+ LOGO[16] = MAGENTA " odxxdx" WHITE "xllod" MAGENTA "ddooxx" BLUE "dc:ldo " RESET;
+ LOGO[17] = MAGENTA " lodd" BLUE "dolccc" MAGENTA "ccox" BLUE "xoloo " RESET;
+ for (int i = 18; i < 23; i++) {
+ LOGO[i] = BLUE " " RESET;
+ }
+
+ LOGO_SMALL[0] = BLUE " ___ " RESET;
+ LOGO_SMALL[1] = BLUE " (" WHITE ".·" BLUE " | " RESET;
+ LOGO_SMALL[2] = BLUE " (" MAGENTA "<>" BLUE " | " RESET;
+ LOGO_SMALL[3] = BLUE " / " WHITE "__" BLUE " \\ " RESET;
+ LOGO_SMALL[4] = BLUE " ( " WHITE "/ \\" BLUE " /| " RESET;
+ LOGO_SMALL[5] = MAGENTA "_" BLUE "/\\ "WHITE "__)" BLUE "/" MAGENTA "_" BLUE ") " RESET;
+ LOGO_SMALL[6] = MAGENTA "\\/" BLUE "-____" MAGENTA "\\/ " RESET;
+ for (int i = 7; i < 23; i++) {
+ LOGO_SMALL[i] = BLUE " " RESET;
+ }
+ } else if (strncmp((char *)distroname, "debian", strlen("debian")) == 0) {
+ color = RED;
+ titlecolor = RED;
+
+ LOGO[0] = WHITE " _,met$$$$$gg. " RESET;
+ LOGO[1] = WHITE " ,g$$$$$$$$$$$$$$$P. " RESET;
+ LOGO[2] = WHITE " ,g$$P\" \"\"\"Y$$.\". " RESET;
+ LOGO[3] = WHITE " ,$$P' `$$$. " RESET;
+ LOGO[4] = WHITE "',$$P ,ggs. `$$b: " RESET;
+ LOGO[5] = WHITE "`d$$' ,$P\"' " RED "." WHITE " $$$ " RESET;
+ LOGO[6] = WHITE " $$P d$' " RED "," WHITE " $$P " RESET;
+ LOGO[7] = WHITE " $$: $$. - ,d$$' " RESET;
+ LOGO[8] = WHITE " $$; Y$b._ _,d$P' " RESET;
+ LOGO[9] = WHITE " Y$$. " RED "`." WHITE "`\"Y$$$$P\"' " RESET;
+ LOGO[10] = WHITE " `$$b " RED "\"-.__" WHITE " " RESET;
+ LOGO[11] = WHITE " `Y$$ " RESET;
+ LOGO[12] = WHITE " `Y$$. " RESET;
+ LOGO[13] = WHITE " `$$b. " RESET;
+ LOGO[14] = WHITE " `Y$$b. " RESET;
+ LOGO[15] = WHITE " `\"Y$b._ " RESET;
+ LOGO[16] = WHITE " `\"\"\" " RESET;
+ LOGO[17] = WHITE " " RESET;
+ for (int i = 18; i < 23; i++) {
+ LOGO[i] = RED " " 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;
+ for (int i = 6; i < 23; i++) {
+ LOGO_SMALL[i] = RED " " RESET;
+ }
+ } else if (strncmp((char *)distroname, "devuan", strlen("devuan")) == 0) {
+ color = MAGENTA;
+ titlecolor = MAGENTA;
+
+ LOGO[0] = MAGENTA " ..,,;;;::;,.. " RESET;
+ LOGO[1] = MAGENTA " `':ddd;:,. " RESET;
+ LOGO[2] = MAGENTA " `'dPPd:,. " RESET;
+ LOGO[3] = MAGENTA " `:b$$b`. " RESET;
+ LOGO[4] = MAGENTA " 'P$$$d` " RESET;
+ LOGO[5] = MAGENTA " .$$$$$` " RESET;
+ LOGO[6] = MAGENTA " ;$$$$$P " RESET;
+ LOGO[7] = MAGENTA " .:P$$$$$$` " RESET;
+ LOGO[8] = MAGENTA " .,:b$$$$$$$;' " RESET;
+ LOGO[9] = MAGENTA " .,:dP$$$$$$$$b:' " RESET;
+ LOGO[10] = MAGENTA " .,:;db$$$$$$$$$$Pd'` " RESET;
+ LOGO[11] = MAGENTA " ,db$$$$$$$$$$$$$$b:'` " RESET;
+ LOGO[12] = MAGENTA ":$$$$$$$$$$$$b:'` " RESET;
+ LOGO[13] = MAGENTA " `$$$$$bd:''` " RESET;
+ LOGO[14] = MAGENTA " `'''` " RESET;
+ LOGO[15] = MAGENTA " " RESET;
+ LOGO[16] = MAGENTA " " RESET;
+ LOGO[17] = MA8ENTA " " RESET;
+ for (int i = 19; i < 23; i++) {
+ LOGO[i] = MAGENTA " " RESET;
+ }
+
+ LOGO_SMALL[0] = MAGENTA "__ " RESET;
+ LOGO_SMALL[1] = MAGENTA " \\ " RESET;
+ LOGO_SMALL[2] = MAGENTA " _/ " RESET;
+ for (int i = 3; i < 23; i++) {
+ LOGO_SMALL[i] = MAGENTA " " RESET;
+ }
+ } else if (strncmp((char *)distroname, "gentoo", strlen("gentoo")) == 0) {
+ color = MAGENTA;
+ titlecolor = MAGENTA;
+
+ LOGO[0] = MAGENTA " -/oyddmdhs+:. " RESET;
+ LOGO[1] = MAGENTA " -o" WHITE "dNMMMMMMMMNNmhy+" MAGENTA "-` " RESET;
+ LOGO[2] = MAGENTA " -y" WHITE "NMMMMMMMMMMMNNNmmdhy" MAGENTA "+- " RESET;
+ LOGO[3] = MAGENTA " `o" WHITE "mMMMMMMMMMMMMNmdmmmmddhhy" MAGENTA "/` " RESET;
+ LOGO[4] = MAGENTA " om" WHITE "MMMMMMMMMMMN" MAGENTA "hhyyyo" WHITE "hmdddhhhd" MAGENTA "o` " RESET;
+ LOGO[5] = MAGENTA ".y" WHITE "dMMMMMMMMMMd" MAGENTA "hs++so/s" WHITE "mdddhhhhdm" MAGENTA "+` " RESET;
+ LOGO[6] = MAGENTA " oy" WHITE "hdmNMMMMMMMN" MAGENTA "dyooy" WHITE "dmddddhhhhyhN" MAGENTA "d. " RESET;
+ LOGO[7] = MAGENTA " :o" WHITE "yhhdNNMMMMMMMNNNmmdddhhhhhyym" MAGENTA "Mh " RESET;
+ LOGO[8] = MAGENTA " .:" WHITE "+sydNMMMMMNNNmmmdddhhhhhhmM" MAGENTA "my " RESET;
+ LOGO[9] = MAGENTA " /m" WHITE "MMMMMMNNNmmmdddhhhhhmMNh" MAGENTA "s: " RESET;
+ LOGO[10] = MAGENTA " `o" WHITE "NMMMMMMMNNNmmmddddhhdmMNhs" MAGENTA "+` " RESET;
+ LOGO[11] = MAGENTA " `s" WHITE "NMMMMMMMMNNNmmmdddddmNMmhs" MAGENTA "/. " RESET;
+ LOGO[12] = MAGENTA " /N" WHITE "MMMMMMMMNNNNmmmdddmNMNdso" MAGENTA ":` " RESET;
+ LOGO[13] = MAGENTA "+M" WHITE "MMMMMMNNNNNmmmmdmNMNdso" MAGENTA "/- " RESET;
+ LOGO[14] = MAGENTA "yM" WHITE "MNNNNNNNmmmmmNNMmhs+/" MAGENTA" -` " RESET;
+ LOGO[15] = MAGENTA "/h" WHITE "MMNNNNNNNNMNdhs++/" MAGENTA "-` " RESET;
+ LOGO[16] = MAGENTA "`/" WHITE "ohdmmddhys+++/:" MAGENTA ".` " RESET;
+ LOGO[17] = MAGENTA " `-//////:--. " RESET;
+ for (int i = 18; i < 23; i++) {
+ LOGO[i] = MAGENTA " " RESET;
+ }
+
+ LOGO_SMALL[0] = MAGENTA " _-----_ " RESET;
+ LOGO_SMALL[1] = MAGENTA "( \\ " RESET;
+ LOGO_SMALL[2] = MAGENTA "\\ 0 \\ " RESET;
+ LOGO_SMALL[3] = WHITE " \\ ) " RESET;
+ LOGO_SMALL[4] = WHITE " / _/ " RESET;
+ LOGO_SMALL[5] = WHITE "( _- " RESET;
+ LOGO_SMALL[6] = WHITE "\\____- " RESET;
+ for (int i = 7; i < 23; i++) {
+ LOGO_SMALL[i] = MAGENTA " " RESET;
+ }
+ } else if (
+ strncmp((char *)distroname,
+ "postmarketos",
+ strlen("postmarketos")
+ ) == 0
+ ) {
+ color = GREEN;
+ titlecolor = GREEN;
+
+ LOGO[0] = GREEN " /\\ " RESET;
+ LOGO[1] = 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[14] = GREEN " / \\ \\ \\ " RESET;
+ LOGO[15] = GREEN " / / / \\ " RESET;
+ LOGO[16] = GREEN "/___________/ /____________________\\ " RESET;
+ LOGO[17] = GREEN " " RESET;
+ for (int i = 18; i < 23; i++) {
+ LOGO[i] = 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;
+ LOGO_SMALL[7] = GREEN " / \\ \\ \\ " RESET;
+ LOGO_SMALL[8] = GREEN "/_____/ /________\\ " RESET;
+ for (int i = 9; i < 23; i++) {
+ LOGO_SMALL[i] = GREEN " " RESET;
+ }
+ } else if (strncmp((char *)distroname, "void", strlen("void")) == 0) {
+ color = WHITE;
+ titlecolor = GREEN;
+
+ LOGO[0] = GREEN " __.;=====;.__ " RESET;
+ LOGO[1] = GREEN " _.=+==++=++=+=+===;. " RESET;
+ LOGO[2] = GREEN " -=+++=+===+=+=+++++=_ " RESET;
+ LOGO[3] = GREEN " . -=:`` `--==+=++==. " RESET;
+ LOGO[4] = GREEN " _vi, ` --+=++++: " RESET;
+ LOGO[5] = GREEN " .uvnvi. _._ -==+==+. " RESET;
+ LOGO[6] = GREEN " .vvnvnI` .;==|==;. :|=||=|. " RESET;
+ LOGO[7] = GREY "+QmQQm" GREEN "pvvnv; " GREY "_yYsyQQWUUQQQm #QmQ#" GREEN ":" GREY "QQQWUV$QQm. " RESET;
+ LOGO[8] = GREY " -QQWQW" GREEN "pvvo" GREY "wZ?.wQQQE" GREEN "==<" GREY "!QWWQ/QWQW.QQWW" GREEN "(: " GREY "jQWQE " RESET;
+ LOGO[9] = GREY " -$QQQQmmU' jQQQ@" GREEN "+=<" GREY "QWQQ)mQQQ.mQQQC" GREEN "+;" GREY "jWQQ@' " RESET;
+ LOGO[10] = GREY " -$WQ8Y" GREEN "nI: " GREY "QWQQwgQQWV" GREEN"`" GREY "mWQQ.jQWQQgyyWW@! " RESET;
+ LOGO[11] = GREEN " -1vvnvv. `~+++` ++|+++ " RESET;
+ LOGO[12] = GREEN " +vnvnnv, `-|=== " RESET;
+ LOGO[13] = GREEN " +vnvnvns. . :=- " RESET;
+ LOGO[14] = GREEN " -Invnvvnsi..___..=sv=. ` " RESET;
+ LOGO[15] = GREEN " +Invnvnvnnnnnnnnvvnn;. " RESET;
+ LOGO[16] = GREEN " ~|Invnvnvvnvvvnnv}+` " RESET;
+ LOGO[17] = GREEN " -~|{*l}*|~ " RESET;
+ LOGO[18] = GREEN " " RESET;
+ LOGO[19] = GREEN " " RESET;
+ for (int i = 20; i < 23; i++) {
+ LOGO[i] = 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;
+ for (int i = 7; i < 23; i++) {
+ LOGO_SMALL[i] = GREEN " " RESET;
+ }
+ } else {
+ color = WHITE;
+ titlecolor = WHITE;
+
+ LOGO[0] = GREY " ##### " RESET;
+ LOGO[1] = GREY " ####### " RESET;
+ LOGO[2] = GREY " ##" WHITE "O" GREY "#" WHITE "O" GREY "## " RESET;
+ LOGO[3] = GREY " #" YELLOW "#####" GREY "# " RESET;
+ LOGO[4] = GREY " ##" WHITE "##" YELLOW "###" WHITE "##" GREY "## " RESET;
+ LOGO[5] = GREY " #" WHITE "##########" GREY "## " RESET;
+ LOGO[6] = GREY " #" WHITE "############" GREY "## " RESET;
+ LOGO[7] = GREY " #" WHITE "############" GREY "### " RESET;
+ LOGO[8] = YELLOW " ##" GREY "#" WHITE "###########" GREY "##" YELLOW "# " RESET;
+ LOGO[9] = YELLOW "######" YELLOW "#" GREY "#" WHITE "######" GREY "#" YELLOW "###### " RESET;
+ LOGO[10] = YELLOW "#######" GREY "#" WHITE "#####" GREY "#" YELLOW "####### " RESET;
+ LOGO[11] = YELLOW " #####" GREY "#######" YELLOW "##### " RESET;
+ LOGO[12] = GREY " " RESET;
+ LOGO[13] = GREY " " RESET;
+ LOGO[14] = GREY " " RESET;
+ LOGO[15] = GREY " " RESET;
+ LOGO[16] = GREY " " RESET;
+ LOGO[17] = GREY " " RESET;
+ for (int i = 18; i < 23; i++) {
+ LOGO[i] = GREY " " RESET;
+ }
+
+ LOGO_SMALL[0] = GREY " ___ " RESET;
+ LOGO_SMALL[1] = GREY " / \\ " RESET;
+ LOGO_SMALL[2] = GREY " |" WHITE "0 0" GREY "| " RESET;
+ LOGO_SMALL[3] = GREY " | " YELLOW "v" GREY " | " RESET;
+ LOGO_SMALL[4] = GREY " / " WHITE "/ \\" GREY " \\ " RESET;
+ LOGO_SMALL[5] = GREY " | " WHITE "\\_/" GREY " | " RESET;
+ LOGO_SMALL[6] = YELLOW "/ " GREY "_____" YELLOW " \\ " RESET;
+ LOGO_SMALL[7] = YELLOW "\\/ \\/ " RESET;
+ for (int i = 8; i < 23; i++) {
+ LOGO_SMALL[i] = GREY " " RESET;
+ }
+ }
+}
+#endif
diff --git a/src/logo/linux.h b/src/logo/linux.h
index 6f4ba99..358c6f8 100644
--- a/src/logo/linux.h
+++ b/src/logo/linux.h
@@ -1,368 +1,16 @@
+#if defined(__linux__)
#ifndef LOGO_LINUX_H
#define LOGO_LINUX_H
#include "../distro.h"
+#include "colors.h"
-#define GREY "\e[1;30m"
-#define RED "\e[1;31m"
-#define GREEN "\e[1;32m"
-#define YELLOW "\e[1;33m"
-#define BLUE "\e[1;34m"
-#define MAGENTA "\e[1;35m"
-#define CYAN "\e[1;36m"
-#define WHITE "\e[1;37m"
-#define RESET "\e[0m"
+extern char *LOGO[23];
+extern char *LOGO_SMALL[23];
+extern const char *color;
+extern const char *titlecolor;
-#define COLOR WHITE
-#define TITLECOLOR WHITE
+void getDistro(const char *distroname);
-#define DISTRO_LINUX 0
-#define DISTRO_ALPINE 1
-#define DISTRO_ARCH 2
-#define DISTRO_ARTIX 3
-#define DISTRO_CRUX 4
-#define DISTRO_DEBIAN 5
-#define DISTRO_DEVUAN 6
-#define DISTRO_GENTOO 7
-#define DISTRO_POSTMARKETOS 8
-#define DISTRO_VOID 9
-
-#ifndef DISTRO
-#define DISTRO DISTRO_LINUX
-#endif
-
-#define COLOR WHITE
-#define TITLECOLOR WHITE
-
-#if DISTRO == DISTRO_LINUX
-char *LOGO[] = {
-GREY " ##### " RESET,
-GREY " ####### " RESET,
-GREY " ##" WHITE "O" GREY "#" WHITE "O" GREY "## " RESET,
-GREY " #" YELLOW "#####" GREY "# " RESET,
-GREY " ##" WHITE "##" YELLOW "###" WHITE "##" GREY "## " RESET,
-GREY " #" WHITE "##########" GREY "## " RESET,
-GREY " #" WHITE "############" GREY "## " RESET,
-GREY " #" WHITE "############" GREY "### " RESET,
-YELLOW " ##" GREY "#" WHITE "###########" GREY "##" YELLOW "# " RESET,
-YELLOW "######" YELLOW "#" GREY "#" WHITE "######" GREY "#" YELLOW "###### " RESET,
-YELLOW "#######" GREY "#" WHITE "#####" GREY "#" YELLOW "####### " RESET,
-YELLOW " #####" GREY "#######" YELLOW "##### " RESET,
-GREY " " RESET,
-GREY " " RESET,
-GREY " " RESET,
-GREY " " RESET,
-GREY " " RESET,
-GREY " " RESET
-};
-
-char *LOGO_SMALL[] = {
-GREY " ___ " RESET,
-GREY " / \\ " RESET,
-GREY " |" WHITE "0 0" GREY "| " RESET,
-GREY " | " YELLOW "v" GREY " | " RESET,
-GREY " / " WHITE "/ \\" GREY " \\ " RESET,
-GREY " | " WHITE "\\_/" GREY " | " RESET,
-YELLOW "/ " GREY "_____" YELLOW " \\ " RESET,
-YELLOW "\\/ \\/ " RESET
-};
-#elif DISTRO == DISTRO_ALPINE
-// Alpine
-char *LOGO[] = {
-BLUE " .hddddddddddddddddddddddh. " RESET,
-BLUE " :dddddddddddddddddddddddddd: " RESET,
-BLUE " /dddddddddddddddddddddddddddd/ " RESET,
-BLUE " +dddddddddddddddddddddddddddddd+ " RESET,
-BLUE " `sdddddddddddddddddddddddddddddddds` " RESET,
-BLUE " `ydddddddddddd++hdddddddddddddddddddy` " RESET,
-BLUE ".hddddddddddd+` `+ddddh:-sdddddddddddh. " RESET,
-BLUE "hdddddddddd+` `+y: .sddddddddddh " RESET,
-BLUE "ddddddddh+` `//` `.` -sddddddddd " RESET,
-BLUE "ddddddh+` `/hddh/` `:s- -sddddddd " RESET,
-BLUE "ddddh+` `/+/dddddh/` `+s- -sddddd " RESET,
-BLUE "ddd+` `/o` :dddddddh/` `oy- .yddd " RESET,
-BLUE "hdddyo+ohddyosdddddddddho+oydddy++ohdddh " RESET,
-BLUE ".hddddddddddddddddddddddddddddddddddddh. " RESET,
-BLUE " `yddddddddddddddddddddddddddddddddddy` " RESET,
-BLUE " `sdddddddddddddddddddddddddddddddds` " RESET,
-BLUE " +dddddddddddddddddddddddddddddd+ " RESET,
-BLUE " /dddddddddddddddddddddddddddd/ " RESET,
-BLUE " :dddddddddddddddddddddddddd: " RESET,
-BLUE " .hddddddddddddddddddddddh. " RESET
-};
-
-char *LOGO_SMALL[] = {
-BLUE " /\\ /\\ " RESET,
-BLUE " /" WHITE "/ " BLUE "\\ \\ " RESET,
-BLUE " /" WHITE "/ " BLUE "\\ \\ " RESET,
-BLUE "/" WHITE "// " BLUE "\\ \\ " RESET,
-WHITE "// " BLUE "\\ \\ " RESET,
-BLUE " \\ " RESET
-};
-#elif DISTRO == DISTRO_ARCH
-// Arch
-char *LOGO[] = {
-CYAN " -` " RESET,
-CYAN " .o+` " RESET,
-CYAN " `ooo/ " RESET,
-CYAN " `+oooo: " RESET,
-CYAN " `+oooooo: " RESET,
-CYAN " -+oooooo+: " RESET,
-CYAN " `/:-:++oooo+: " RESET,
-CYAN " `/++++/+++++++: " RESET,
-CYAN " `/++++++++++++++: " RESET,
-CYAN " `/+++ooooooooooooo/` " RESET,
-CYAN " ./ooosssso++osssssso+` " RESET,
-CYAN " .oossssso-````/ossssss+` " RESET,
-CYAN " -osssssso. :ssssssso. " RESET,
-CYAN " :osssssss/ osssso+++. " RESET,
-CYAN " /ossssssss/ +ssssooo/- " RESET,
-CYAN " `/ossssso+/:- -:/+osssso+- " RESET,
-CYAN " `+sso+:-` `.-/+oso: " RESET,
-CYAN "`++:. `-/+/ " RESET,
-CYAN ".` `/ " RESET
-};
-
-char *LOGO_SMALL[] = {
-CYAN " /\\ " RESET,
-CYAN " / \\ " RESET,
-CYAN " /\\ \\ " RESET,
-WHITE " / \\ " RESET,
-WHITE " / ,, \\ " RESET,
-WHITE " / | | -\\ " RESET,
-WHITE "/_-'' ''-_\\ " RESET
-};
-
-#elif DISTRO == DISTRO_ARTIX
-// Artix
-char *LOGO[] = {
-CYAN " ' " RESET,
-CYAN " 'o' " RESET,
-CYAN " 'ooo' " RESET,
-CYAN " 'ooxoo' " RESET,
-CYAN " 'ooxxxoo' " RESET,
-CYAN " 'oookkxxoo' " RESET,
-CYAN " 'oiioxkkxxoo' " RESET,
-CYAN " ':;:iiiioxxxoo' " RESET,
-CYAN " `'.;::ioxxoo' " RESET,
-CYAN " '-. `':;jiooo' " RESET,
-CYAN " 'oooio-.. `'i:io' " RESET,
-CYAN " 'ooooxxxxoio:,. `'-;' " RESET,
-CYAN " 'ooooxxxxxkkxoooIi:-. `' " RESET,
-CYAN " 'ooooxxxxxkkkkxoiiiiiji' " RESET,
-CYAN " 'ooooxxxxxkxxoiiii:'` .i' " RESET,
-CYAN " 'ooooxxxxxoi:::'` .;ioxo' " RESET,
-CYAN " 'ooooxooi::'` .:iiixkxxo' " RESET,
-CYAN " 'ooooi:'` `'';ioxxo' " RESET,
-CYAN " 'i:'` '':io' " RESET,
-CYAN "'` `' " RESET
-};
-
-char *LOGO_SMALL[] = {
-CYAN " /\\ " RESET,
-CYAN " / \\ " RESET,
-CYAN " /`'.,\\ " RESET,
-CYAN " / ', " RESET,
-CYAN " / ,`\\ " RESET,
-CYAN " / ,.'`. \\ " RESET,
-CYAN "/.,'` `'.\\ " RESET
-};
-
-#elif DISTRO == DISTRO_CRUX
-// CRUX
-char *LOGO[] = {
-BLUE " odddd " RESET,
-BLUE " oddxkkkxxdoo " RESET,
-BLUE " ddcoddxxxdoool " RESET,
-BLUE " xdclodod olol " RESET,
-BLUE " xoc xdd olol " RESET,
-BLUE " xdc " MAGENTA "k00" BLUE "Okdlol " RESET,
-BLUE " xxd" MAGENTA "kOKKKOkd" BLUE "ldd " RESET,
-BLUE " xdco" MAGENTA "xOkdlo" BLUE "dldd " RESET,
-BLUE " ddc:cl" MAGENTA "lll" BLUE "oooodo " RESET,
-BLUE " odxxdd" WHITE "xkO000kx" BLUE "ooxdo " RESET,
-BLUE " oxdd" WHITE "x0NMMMMMMWW0od" BLUE "kkxo " RESET,
-BLUE " oooxd" WHITE "0WMMMMMMMMMW0o" BLUE "dxkx " RESET,
-BLUE "docldkXW" WHITE "MMMMMMMWWN" BLUE "Odolco " RESET,
-BLUE "xx" MAGENTA "dx" BLUE "kxxOKN" WHITE "WMMWN" BLUE "0xdoxo::c " RESET,
-MAGENTA "xOkkO" BLUE "0oo" WHITE "odOW" MAGENTA "WW" BLUE "XkdodOxc:l " RESET,
-MAGENTA "dkkkxkkk" WHITE "OKX" MAGENTA "NNNX0Oxx" BLUE "xc:cd " RESET,
-MAGENTA " odxxdx" WHITE "xllod" MAGENTA "ddooxx" BLUE "dc:ldo " RESET,
-MAGENTA " lodd" BLUE "dolccc" MAGENTA "ccox" BLUE "xoloo " RESET
-};
-
-char *LOGO_SMALL[] = {
-BLUE " ___ " RESET,
-BLUE " (" WHITE ".·" BLUE " | " RESET,
-BLUE " (" MAGENTA "<>" BLUE " | " RESET,
-BLUE " / " WHITE "__" BLUE " \\ " RESET,
-BLUE " ( " WHITE "/ \\" BLUE " /| " RESET,
-MAGENTA "_" BLUE "/\\ "WHITE "__)" BLUE "/" MAGENTA "_" BLUE ") " RESET,
-MAGENTA "\\/" BLUE "-____" MAGENTA "\\/ " RESET
-};
-
-#elif DISTRO == DISTRO_DEBIAN
-// Debian
-char *LOGO[] = {
-WHITE " _,met$$$$$gg. " RESET,
-WHITE " ,g$$$$$$$$$$$$$$$P. " RESET,
-WHITE " ,g$$P\" \"\"\"Y$$.\". " RESET,
-WHITE " ,$$P' `$$$. " RESET,
-WHITE "',$$P ,ggs. `$$b: " RESET,
-WHITE "`d$$' ,$P\"' " RED "." WHITE " $$$ " RESET,
-WHITE " $$P d$' " RED "," WHITE " $$P " RESET,
-WHITE " $$: $$. - ,d$$' " RESET,
-WHITE " $$; Y$b._ _,d$P' " RESET,
-WHITE " Y$$. " RED "`." WHITE "`\"Y$$$$P\"' " RESET,
-WHITE " `$$b " RED "\"-.__" WHITE " " RESET,
-WHITE " `Y$$ " RESET,
-WHITE " `Y$$. " RESET,
-WHITE " `$$b. " RESET,
-WHITE " `Y$$b. " RESET,
-WHITE " `\"Y$b._ " RESET,
-WHITE " `\"\"\" " RESET,
-WHITE " " RESET
-};
-
-char *LOGO_SMALL[] = {
-RED " _____ " RESET,
-RED " / __ \\ " RESET,
-RED "| / | " RESET,
-RED "| \\___- " RESET,
-RED "-_ " RESET,
-RED " --_ " RESET
-};
-
-#elif DISTRO == DISTRO_DEVUAN
-// Devuan
-char *LOGO[] = {
-MAGENTA " ..,,;;;::;,.. " RESET,
-MAGENTA " `':ddd;:,. " RESET,
-MAGENTA " `'dPPd:,. " RESET,
-MAGENTA " `:b$$b`. " RESET,
-MAGENTA " 'P$$$d` " RESET,
-MAGENTA " .$$$$$` " RESET,
-MAGENTA " ;$$$$$P " RESET,
-MAGENTA " .:P$$$$$$` " RESET,
-MAGENTA " .,:b$$$$$$$;' " RESET,
-MAGENTA " .,:dP$$$$$$$$b:' " RESET,
-MAGENTA " .,:;db$$$$$$$$$$Pd'` " RESET,
-MAGENTA " ,db$$$$$$$$$$$$$$b:'` " RESET,
-MAGENTA ":$$$$$$$$$$$$b:'` " RESET,
-MAGENTA " `$$$$$bd:''` " RESET,
-MAGENTA " `'''` " RESET,
-MAGENTA " " RESET,
-MAGENTA " " RESET,
-MAGENTA " " RESET
-};
-
-char *LOGO_SMALL[] = {
-MAGENTA "__ " RESET,
-MAGENTA " \\ " RESET,
-MAGENTA " _/ " RESET
-};
-
-#elif DISTRO == DISTRO_GENTOO
-// Gentoo
-char *LOGO[] = {
-MAGENTA " -/oyddmdhs+:. " RESET,
-MAGENTA " -o" WHITE "dNMMMMMMMMNNmhy+" MAGENTA "-` " RESET,
-MAGENTA " -y" WHITE "NMMMMMMMMMMMNNNmmdhy" MAGENTA "+- " RESET,
-MAGENTA " `o" WHITE "mMMMMMMMMMMMMNmdmmmmddhhy" MAGENTA "/` " RESET,
-MAGENTA " om" WHITE "MMMMMMMMMMMN" MAGENTA "hhyyyo" WHITE "hmdddhhhd" MAGENTA "o` " RESET,
-MAGENTA ".y" WHITE "dMMMMMMMMMMd" MAGENTA "hs++so/s" WHITE "mdddhhhhdm" MAGENTA "+` " RESET,
-MAGENTA " oy" WHITE "hdmNMMMMMMMN" MAGENTA "dyooy" WHITE "dmddddhhhhyhN" MAGENTA "d. " RESET,
-MAGENTA " :o" WHITE "yhhdNNMMMMMMMNNNmmdddhhhhhyym" MAGENTA "Mh " RESET,
-MAGENTA " .:" WHITE "+sydNMMMMMNNNmmmdddhhhhhhmM" MAGENTA "my " RESET,
-MAGENTA " /m" WHITE "MMMMMMNNNmmmdddhhhhhmMNh" MAGENTA "s: " RESET,
-MAGENTA " `o" WHITE "NMMMMMMMNNNmmmddddhhdmMNhs" MAGENTA "+` " RESET,
-MAGENTA " `s" WHITE "NMMMMMMMMNNNmmmdddddmNMmhs" MAGENTA "/. " RESET,
-MAGENTA " /N" WHITE "MMMMMMMMNNNNmmmdddmNMNdso" MAGENTA ":` " RESET,
-MAGENTA "+M" WHITE "MMMMMMNNNNNmmmmdmNMNdso" MAGENTA "/- " RESET,
-MAGENTA "yM" WHITE "MNNNNNNNmmmmmNNMmhs+/" MAGENTA" -` " RESET,
-MAGENTA "/h" WHITE "MMNNNNNNNNMNdhs++/" MAGENTA "-` " RESET,
-MAGENTA "`/" WHITE "ohdmmddhys+++/:" MAGENTA ".` " RESET,
-MAGENTA " `-//////:--. " RESET
-};
-
-char *LOGO_SMALL[] = {
-MAGENTA " _-----_ " RESET,
-MAGENTA "( \\ " RESET,
-MAGENTA "\\ 0 \\ " RESET,
-WHITE " \\ ) " RESET,
-WHITE " / _/ " RESET,
-WHITE "( _- " RESET,
-WHITE "\\____- " RESET
-};
-
-#elif DISTRO == DISTRO_POSTMARKETOS
-// postmarketOS
-char *LOGO[] = {
-GREEN " /\\ " RESET,
-GREEN " / \\ " RESET,
-GREEN " / \\ " RESET,
-GREEN " / \\ " RESET,
-GREEN " / \\ " RESET,
-GREEN " / \\ " RESET,
-GREEN " \\ \\ " RESET,
-GREEN " /\\ \\____ \\ " RESET,
-GREEN " / \\____ \\ \\ " RESET,
-GREEN " / / \\ \\ " RESET,
-GREEN " / / \\ ___\\ " RESET,
-GREEN " / / \\ / ____ " RESET,
-GREEN " / / \\/ / \\ " RESET,
-GREEN " / / __________/ \\ " RESET,
-GREEN " / \\ \\ \\ " RESET,
-GREEN " / \\ \\ \\ " RESET,
-GREEN " / / / \\ " RESET,
-GREEN "/___________/ /____________________\\ " RESET,
-GREEN " " RESET
-};
-
-char *LOGO_SMALL[] = {
-GREEN " /\\ " RESET,
-GREEN " / \\ " RESET,
-GREEN " / \\ " RESET,
-GREEN " \\__ \\ " RESET,
-GREEN " /\\__ \\ _\\ " RESET,
-GREEN " / / \\/ __ " RESET,
-GREEN " / / ____/ \\ " RESET,
-GREEN " / \\ \\ \\ " RESET,
-GREEN "/_____/ /________\\ " RESET
-};
-#elif DISTRO == DISTRO_VOID
-// Void
-char *LOGO[] = {
-GREEN " __.;=====;.__ " RESET,
-GREEN " _.=+==++=++=+=+===;. " RESET,
-GREEN " -=+++=+===+=+=+++++=_ " RESET,
-GREEN " . -=:`` `--==+=++==. " RESET,
-GREEN " _vi, ` --+=++++: " RESET,
-GREEN " .uvnvi. _._ -==+==+. " RESET,
-GREEN " .vvnvnI` .;==|==;. :|=||=|. " RESET,
-GREY "+QmQQm" GREEN "pvvnv; " GREY "_yYsyQQWUUQQQm #QmQ#" GREEN ":" GREY "QQQWUV$QQm. " RESET,
-GREY " -QQWQW" GREEN "pvvo" GREY "wZ?.wQQQE" GREEN "==<" GREY "!QWWQ/QWQW.QQWW" GREEN "(: " GREY "jQWQE " RESET,
-GREY " -$QQQQmmU' jQQQ@" GREEN "+=<" GREY "QWQQ)mQQQ.mQQQC" GREEN "+;" GREY "jWQQ@' " RESET,
-GREY " -$WQ8Y" GREEN "nI: " GREY "QWQQwgQQWV" GREEN"`" GREY "mWQQ.jQWQQgyyWW@! " RESET,
-GREEN " -1vvnvv. `~+++` ++|+++ " RESET,
-GREEN " +vnvnnv, `-|=== " RESET,
-GREEN " +vnvnvns. . :=- " RESET,
-GREEN " -Invnvvnsi..___..=sv=. ` " RESET,
-GREEN " +Invnvnvnnnnnnnnvvnn;. " RESET,
-GREEN " ~|Invnvnvvnvvvnnv}+` " RESET,
-GREEN " -~|{*l}*|~ " RESET,
-GREEN " " RESET,
-GREEN " " RESET
-};
-
-char *LOGO_SMALL[] = {
-GREEN " _______ " RESET,
-GREEN " _ \\______ - " RESET,
-GREEN "| \\ ___ \\ | " RESET,
-GREEN "| | / \\ | | " RESET,
-GREEN "| | \\___/ | | " RESET,
-GREEN "| \\______ \\_| " RESET,
-GREEN " -_______\\ " RESET
-};
#endif
#endif
diff --git a/src/logo/linux_def.c b/src/logo/linux_def.c
deleted file mode 100644
index 12a9ef2..0000000
--- a/src/logo/linux_def.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#include "linux_def.h"
-
-#include <string.h>
-
-void getDistro(const char *distroname) {
- if (strncmp((char *)distroname, "alpine", strlen("alpine")) == 0) {
-#undef DISTRO
-#undef COLOR
-#undef TITLECOLOR
-#define DISTRO DISTRO_ALPINE
-#define COLOR MAGENTA
-#define TITLECOLOR BLUE
- } else if (strncmp((char *)distroname, "artix", strlen("artix")) == 0) {
-#undef DISTRO
-#undef COLOR
-#undef TITLECOLOR
-#define DISTRO DISTRO_ARCH
-#define COLOR CYAN
-#define TITLECOLOR CYAN
- } else if (strncmp((char *)distroname, "arch", strlen("arch")) == 0) {
-#undef DISTRO
-#undef COLOR
-#undef TITLECOLOR
-#define DISTRO DISTRO_ARTIX
-#define COLOR CYAN
-#define TITLECOLOR CYAN
- } else if (strncmp((char *)distroname, "crux", strlen("crux")) == 0) {
-#undef DISTRO
-#undef COLOR
-#undef TITLECOLOR
-#define DISTRO DISTRO_CRUX
-#define COLOR MAGENTA
-#define TITLECOLOR BLUE
- } else if (strncmp((char *)distroname, "debian", strlen("debian")) == 0) {
-#undef DISTRO
-#undef COLOR
-#undef TITLECOLOR
-#define DISTRO DISTRO_DEBIAN
-#define COLOR RED
-#define TITLECOLOR RED
- } else if (strncmp((char *)distroname, "devuan", strlen("devuan")) == 0) {
-#undef DISTRO
-#undef COLOR
-#undef TITLECOLOR
-#define DISTRO DISTRO_DEVUAN
-#define COLOR MAGENTA
-#define TITLECOLOR MAGENTA
- } else if (strncmp((char *)distroname, "gentoo", strlen("gentoo")) == 0) {
-#undef DISTRO
-#undef COLOR
-#undef TITLECOLOR
-#define DISTRO DISTRO_GENTOO
-#define COLOR MAGENTA
-#define TITLECOLOR MAGENTA
- } else if (
- strncmp((char *)distroname,
- "postmarketos",
- strlen("postmarketos")
- ) == 0
- ) {
-#undef DISTRO
-#undef COLOR
-#undef TITLECOLOR
-#define DISTRO DISTRO_POSTMARKETOS
-#define COLOR GREEN
-#define TITLECOLOR GREEN
- } else if (strncmp((char *)distroname, "void", strlen("void")) == 0) {
-#undef DISTRO
-#undef COLOR
-#undef TITLECOLOR
-#define DISTRO DISTRO_VOID
-#define COLOR WHITE
-#define TITLECOLOR GREEN
- }
-}
diff --git a/src/logo/linux_def.h b/src/logo/linux_def.h
deleted file mode 100644
index a798b99..0000000
--- a/src/logo/linux_def.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef LINUX_DEF_H
-#define LINUX_DEF_H
-
-void getDistro(const char *distroname);
-
-#endif
diff --git a/src/logo/netbsd.c b/src/logo/netbsd.c
new file mode 100644
index 0000000..76c01b4
--- /dev/null
+++ b/src/logo/netbsd.c
@@ -0,0 +1,48 @@
+#if defined(__NetBSD__)
+#include "openbsd.h"
+
+#include <string.h>
+
+char *LOGO[23];
+char *LOGO_SMALL[23];
+const char *color;
+const char *titlecolor;
+
+void getOS() {
+ color = MAGENTA;
+ titlecolor = MAGENTA;
+
+ LOGO[0] = MAGENTA " `-/oshdmNMNdhyo+:-` " RESET;
+ LOGO[1] = WHITE "y" MAGENTA "/s+:-`` `.-:+oydNMMMMNhs/-`` " RESET;
+ LOGO[2] = WHITE "-m+" MAGENTA "NMMMMMMMMMMMMMMMMMMMNdhmNMMMmdhs+/-` " RESET;
+ LOGO[3] = WHITE " -m+" MAGENTA "NMMMMMMMMMMMMMMMMMMMMmy+:` " RESET;
+ LOGO[4] = WHITE " -N/" MAGENTA "dMMMMMMMMMMMMMMMds:` " RESET;
+ LOGO[5] = WHITE " -N/" MAGENTA "hMMMMMMMMMmho:` " RESET;
+ LOGO[6] = WHITE " -N/" MAGENTA "-:/++/:.` " RESET;
+ LOGO[7] = WHITE " :M+ " RESET;
+ LOGO[8] = WHITE " :Mo " RESET;
+ LOGO[9] = WHITE " :Ms " RESET;
+ LOGO[10] = WHITE " :Ms " RESET;
+ LOGO[11] = WHITE " :Ms " RESET;
+ LOGO[12] = WHITE " :Ms " RESET;
+ LOGO[13] = WHITE " :Ms " RESET;
+ LOGO[14] = WHITE " :Ms " RESET;
+ LOGO[15] = WHITE " :Ms " RESET;
+ LOGO[16] = WHITE " :Ms " RESET;
+ LOGO[17] = WHITE " " RESET;
+ for (int i = 18; i < 23; i++) {
+ LOGO[i] = WHITE " " RESET;
+ }
+
+ LOGO_SMALL[0] = "\\\\" MAGENTA "\\`-______,----__ " RESET;
+ LOGO_SMALL[1] = " \\\\ " MAGENTA "__,---\\`_ " RESET;
+ LOGO_SMALL[2] = " \\\\ " MAGENTA "\\`.____ " RESET;
+ LOGO_SMALL[3] = " \\\\" MAGENTA "-______,----\\`- " RESET;
+ LOGO_SMALL[4] = " \\\\ " RESET;
+ LOGO_SMALL[5] = " \\\\ " RESET;
+ LOGO_SMALL[6] = " \\\\ " RESET;
+ for (int i = 7; i < 23; i++) {
+ LOGO_SMALL[i] = MAGENTA " " RESET;
+ }
+}
+#endif
diff --git a/src/logo/netbsd.h b/src/logo/netbsd.h
index a38045a..41a3cfe 100644
--- a/src/logo/netbsd.h
+++ b/src/logo/netbsd.h
@@ -1,42 +1,15 @@
+#if defined(__NetBSD__)
#ifndef LOGO_NETBSD_H
#define LOGO_NETBSD_H
-#define MAGENTA "\e[1;35m"
-#define WHITE "\e[1;37m"
-#define RESET "\e[0m"
+#include "colors.h"
-#define COLOR MAGENTA
-#define TITLECOLOR MAGENTA
+extern char *LOGO[23];
+extern char *LOGO_SMALL[23];
+extern const char *color;
+extern const char *titlecolor;
-char *LOGO[] = {
-MAGENTA " `-/oshdmNMNdhyo+:-` " RESET,
-WHITE "y" MAGENTA "/s+:-`` `.-:+oydNMMMMNhs/-`` " RESET,
-WHITE "-m+" MAGENTA "NMMMMMMMMMMMMMMMMMMMNdhmNMMMmdhs+/-` " RESET,
-WHITE " -m+" MAGENTA "NMMMMMMMMMMMMMMMMMMMMmy+:` " RESET,
-WHITE " -N/" MAGENTA "dMMMMMMMMMMMMMMMds:` " RESET,
-WHITE " -N/" MAGENTA "hMMMMMMMMMmho:` " RESET,
-WHITE " -N/" MAGENTA "-:/++/:.` " RESET,
-WHITE " :M+ " RESET,
-WHITE " :Mo " RESET,
-WHITE " :Ms " RESET,
-WHITE " :Ms " RESET,
-WHITE " :Ms " RESET,
-WHITE " :Ms " RESET,
-WHITE " :Ms " RESET,
-WHITE " :Ms " RESET,
-WHITE " :Ms " RESET,
-WHITE " :Ms " RESET,
-WHITE " " RESET
-};
-
-char *LOGO_SMALL[] = {
-"\\\\" MAGENTA "\\`-______,----__ " RESET,
-" \\\\ " MAGENTA "__,---\\`_ " RESET,
-" \\\\ " MAGENTA "\\`.____ " RESET,
-" \\\\" MAGENTA "-______,----\\`- " RESET,
-" \\\\ " RESET,
-" \\\\ " RESET,
-" \\\\ " RESET
-};
+void getOS();
#endif
+#endif
diff --git a/src/logo/openbsd.c b/src/logo/openbsd.c
new file mode 100644
index 0000000..ba41104
--- /dev/null
+++ b/src/logo/openbsd.c
@@ -0,0 +1,55 @@
+#if defined(__OpenBSD__)
+#include "openbsd.h"
+
+#include <string.h>
+
+char *LOGO[23];
+char *LOGO_SMALL[23];
+const char *color;
+const char *titlecolor;
+
+void getOS() {
+ color = YELLOW;
+ titlecolor = YELLOW;
+
+ for (int i = 0; i < LOGO_SIZE; i++) {
+ LOGO[i] = NULL;
+ LOGO_SMALL[i] = NULL;
+ }
+
+ LOGO[0] = CYAN " _ " RESET;
+ LOGO[1] = CYAN " (_) " RESET;
+ LOGO[2] = YELLOW " | . " RESET;
+ LOGO[3] = YELLOW " . |L /| . " CYAN "_ " RESET;
+ LOGO[4] = YELLOW " _ . |\\ _| \\--+._/| . " CYAN " (_) " RESET;
+ LOGO[5] = YELLOW " / ||\\| Y J ) / |/| ./ " RESET;
+ LOGO[6] = YELLOW " J |)'( | ` F`.'/ " CYAN " _ " RESET;
+ LOGO[7] = YELLOW " -<| F __ .-< " CYAN " (_) " RESET;
+ LOGO[8] = YELLOW " | / .-'" CYAN "." YELLOW " `. /" CYAN "-. " YELLOW "L___ " RESET;
+ LOGO[9] = YELLOW " J \\ < " CYAN "\\ " YELLOW " | |" GREY " O" CYAN "\\" YELLOW "|.-' " CYAN " _ " RESET;
+ LOGO[10] = YELLOW " _J \\ .- \\" CYAN "/" GREY " O " CYAN "|" YELLOW" | \\ |F " CYAN " (_) " RESET;
+ LOGO[11] = YELLOW " '-F -<_. \\ .-' `-' L__ " RESET;
+ LOGO[12] = YELLOW "__J _ _. >-' )" RED "._." YELLOW " |-' " RESET;
+ LOGO[13] = YELLOW " `-|.' /_. " RED "\\_|" YELLOW " F " RESET;
+ LOGO[14] = YELLOW " /.- . _.< " RESET;
+ LOGO[15] = YELLOW " /' /.' .' `\\ " RESET;
+ LOGO[16] = YELLOW " /L /' |/ _.-'-\\ " RESET;
+ LOGO[17] = YELLOW " /'J ___.---'\\| " RESET;
+ LOGO[18] = YELLOW " |\\ .--' V | `. ` " RESET;
+ LOGO[19] = YELLOW " |/`. `-. `._) " RESET;
+ LOGO[20] = YELLOW " / .-.\\ " RESET;
+ LOGO[21] = YELLOW " \\ ( `\\ " RESET;
+ LOGO[22] = YELLOW " `.\\ " RESET;
+
+ LOGO_SMALL[0] = YELLOW " _____ " RESET;
+ LOGO_SMALL[1] = YELLOW " \\- -/ " RESET;
+ LOGO_SMALL[2] = YELLOW " \\_/ \\ " RESET;
+ LOGO_SMALL[3] = YELLOW " | " RESET "O O" YELLOW" | " RESET;
+ LOGO_SMALL[4] = YELLOW " |_ < ) 3 ) " RESET;
+ LOGO_SMALL[5] = YELLOW " / \\ / " RESET;
+ LOGO_SMALL[6] = YELLOW " /-_____-\\ " RESET;
+ for (int i = 7; i < LOGO_SIZE; i++) {
+ LOGO_SMALL[i] = YELLOW " " RESET;
+ }
+}
+#endif
diff --git a/src/logo/openbsd.h b/src/logo/openbsd.h
index a5fc627..65a97a1 100644
--- a/src/logo/openbsd.h
+++ b/src/logo/openbsd.h
@@ -1,53 +1,15 @@
+#if defined(__OpenBSD__)
#ifndef LOGO_OPENBSD_H
#define LOGO_OPENBSD_H
-#define GREY "\e[1;30m"
-#define RED "\e[1;31m"
-#define YELLOW "\e[1;33m"
-#define CYAN "\e[1;36m"
-#define RESET "\e[0m"
+#include "colors.h"
-#define COLOR YELLOW
-#define TITLECOLOR YELLOW
+extern char *LOGO[23];
+extern char *LOGO_SMALL[23];
+extern const char *color;
+extern const char *titlecolor;
-char *LOGO[] = {
-CYAN " _ " RESET,
-CYAN " (_) " RESET,
-YELLOW " | . " RESET,
-YELLOW " . |L /| . " CYAN "_ " RESET,
-YELLOW " _ . |\\ _| \\--+._/| . " CYAN " (_) " RESET,
-YELLOW " / ||\\| Y J ) / |/| ./ " RESET,
-YELLOW " J |)'( | ` F`.'/ " CYAN " _ " RESET,
-YELLOW " -<| F __ .-< " CYAN " (_) " RESET,
-YELLOW " | / .-'" CYAN "." YELLOW " `. /" CYAN "-. " YELLOW "L___ " RESET,
-YELLOW " J \\ < " CYAN "\\ " YELLOW " | |" GREY " O" CYAN "\\" YELLOW "|.-' " CYAN " _ " RESET,
-YELLOW " _J \\ .- \\" CYAN "/" GREY " O " CYAN "|" YELLOW" | \\ |F " CYAN " (_) " RESET,
-YELLOW " '-F -<_. \\ .-' `-' L__ " RESET,
-YELLOW "__J _ _. >-' )" RED "._." YELLOW " |-' " RESET,
-YELLOW " `-|.' /_. " RED "\\_|" YELLOW " F " RESET,
-YELLOW " /.- . _.< " RESET,
-YELLOW " /' /.' .' `\\ " RESET,
-YELLOW " /L /' |/ _.-'-\\ " RESET,
-YELLOW " /'J ___.---'\\| " RESET,
-YELLOW " |\\ .--' V | `. ` " RESET,
-YELLOW " |/`. `-. `._) " RESET,
-YELLOW " / .-.\\ " RESET,
-YELLOW " \\ ( `\\ " RESET,
-YELLOW " `.\\ " RESET
-};
-
-char *LOGO_SMALL[] = {
-YELLOW " _____ " RESET,
-YELLOW " \\- -/ " RESET,
-YELLOW " \\_/ \\ " RESET,
-YELLOW " | " RESET "O O" YELLOW" | " RESET,
-YELLOW " |_ < ) 3 ) " RESET,
-YELLOW " / \\ / " RESET,
-YELLOW " /-_____-\\ " RESET,
-YELLOW " " RESET,
-YELLOW " " RESET,
-YELLOW " " RESET,
-YELLOW " " RESET
-};
+void getOS();
#endif
+#endif
diff --git a/src/logo/openindiana.c b/src/logo/openindiana.c
new file mode 100644
index 0000000..ae84f72
--- /dev/null
+++ b/src/logo/openindiana.c
@@ -0,0 +1,38 @@
+#if defined(__sun)
+#include "openbsd.h"
+
+#include <string.h>
+
+char *LOGO[23];
+char *LOGO_SMALL[23];
+const char *color;
+const char *titlecolor;
+
+void getOS() {
+ 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;
+ LOGO[17] = WHITE " " RESET;
+ LOGO[18] = WHITE " " RESET;
+ for (int i = 19; i < 23; i++) {
+ LOGO[i] = WHITE " " RESET;
+ }
+}
+#endif
diff --git a/src/logo/openindiana.h b/src/logo/openindiana.h
index 8cec833..0c03fa7 100644
--- a/src/logo/openindiana.h
+++ b/src/logo/openindiana.h
@@ -1,33 +1,15 @@
+#if defined(__sun)
#ifndef LOGO_OPENINDIANA_H
#define LOGO_OPENINDIANA_H
-#define BLUE "\e[1;34m"
-#define WHITE "\e[1;37m"
-#define RESET "\e[0m"
+#include "colors.h"
-#define COLOR BLUE
-#define TITLECOLOR BLUE
+extern char *LOGO[23];
+extern char *LOGO_SMALL[23];
+extern const char *color;
+extern const char *titlecolor;
-char *LOGO[] = {
-WHITE " .sy/ " RESET,
-WHITE " .yh+ " RESET,
-WHITE " " RESET,
-BLUE " " BLUE "-+syyyo+-" WHITE " /+. " RESET,
-BLUE " " BLUE "+ddo/---/sdh/" WHITE " ym- " RESET,
-BLUE " " BLUE "`hm+ `sms" WHITE " ym-```````.-. " RESET,
-BLUE " " BLUE "sm+ sm/" WHITE " ym- +s " RESET,
-BLUE " " BLUE "hm. /mo" WHITE " ym- /h " RESET,
-BLUE " " BLUE "omo ym:" WHITE " ym- `os` " RESET,
-BLUE " " BLUE "smo` .ym+" WHITE " ym- .os- " RESET,
-WHITE " `` " BLUE ":ymy+///oyms-" WHITE " ym- .+s+. " RESET,
-WHITE " ..` " BLUE "`:+oo+/-`" WHITE " -//oyo- " RESET,
-WHITE " -:` .:oys/. " RESET,
-WHITE "+- `./oyys/. " RESET,
-WHITE "h+` `.-:+oyyyo/-` " RESET,
-WHITE "`/ossssysso+/-.` " RESET,
-WHITE " " RESET,
-WHITE " " RESET,
-WHITE " " RESET
-};
+void getOS();
#endif
+#endif