kfetch/src/main.c

76 lines
1.4 KiB
C
Raw Normal View History

2023-12-15 15:17:49 +00:00
#define _MAIN_H
2023-11-02 14:51:10 +00:00
#include <stdio.h>
2024-01-01 08:01:54 +00:00
#include <unistd.h>
2024-01-03 12:09:07 +00:00
#include <string.h>
2023-11-02 14:51:10 +00:00
#include "fetch.h"
#include "config.h"
2024-01-01 08:01:54 +00:00
int main(int argc, char **argv) {
unsigned int l_flag = 0;
char *d_flag = NULL;
int opt;
2024-01-03 10:18:43 +00:00
while ((opt = getopt(argc, argv, "hld:")) != -1) {
2024-01-01 08:01:54 +00:00
switch (opt) {
case 'l':
l_flag = 1;
break;
case 'd':
d_flag = optarg;
break;
case 'h':
default:
2024-01-03 10:18:43 +00:00
printf("kfetch [hl]\n\t[-h Help menu] [-l Dont print logo]\n\t[-d N Set N as distro name]\n");
2024-01-01 08:01:54 +00:00
return 0;
}
}
2023-11-02 14:51:10 +00:00
FETCH fetch = Init();
2024-01-01 08:01:54 +00:00
if (d_flag != NULL) {
snprintf(fetch.os_name, sizeof(fetch.os_name), "%s", d_flag);
2024-01-03 10:18:43 +00:00
GetArt(&fetch, 0);
2024-01-01 08:01:54 +00:00
}
2023-11-26 09:49:11 +00:00
2023-12-15 15:45:57 +00:00
int flag = 0;
size_t i = 0;
2023-11-02 14:51:10 +00:00
for (i = 0; i < sizeof(CONFIG) / sizeof(PARAMETR); i++) {
2024-01-01 08:01:54 +00:00
/* Logo print */
if (i < fetch.logo_size && !flag && !l_flag)
2023-11-02 14:51:10 +00:00
printf("%s", fetch.logo[i]);
2024-01-01 08:01:54 +00:00
else if (i >= fetch.logo_size && !flag && !l_flag)
2023-11-02 14:51:10 +00:00
printf("%s", fetch.logo[fetch.logo_size - 1]);
2024-01-01 08:01:54 +00:00
/* Strip */
char *title = CONFIG[i].title;
2024-01-03 10:18:43 +00:00
if (l_flag) {
2024-01-01 08:01:54 +00:00
size_t len = strlen(title);
for (size_t i = 0; i < len; i++) {
if (title[0] != ' ')
break;
title++;
}
}
/* Function exec */
2024-01-03 10:18:43 +00:00
if (CONFIG[i].func(title, fetch)) {
flag = 1;
printf("\033[0m");
2023-12-15 15:45:57 +00:00
}
2023-11-26 09:49:11 +00:00
2023-12-15 15:45:57 +00:00
else {
2024-01-03 10:18:43 +00:00
flag = 0;
printf("\033[0m\n");
2023-12-15 15:45:57 +00:00
}
2023-11-02 14:51:10 +00:00
}
for (; i < fetch.logo_size; i++)
printf("%s\n", fetch.logo[i]);
2023-12-15 15:02:11 +00:00
printf("\033[0m");
2023-11-02 14:51:10 +00:00
return 0;
}