kfetch/src/main.c

66 lines
1.2 KiB
C

#define _MAIN_H
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include "fetch.h"
#include "config.h"
int main(int argc, char **argv) {
unsigned int l_flag = 0;
char *d_flag = NULL;
int opt;
while ((opt = getopt(argc, argv, "hld:")) != -1) {
switch (opt) {
case 'l':
l_flag = 1;
break;
case 'd':
d_flag = optarg;
break;
case 'h':
default:
printf("kfetch [-hld]\n\t-h Help menu\n\t-l Doesnt print logo\n\t-d N Set N as distro name\n");
return 0;
}
}
FETCH fetch = Init();
if (d_flag != NULL) {
snprintf(fetch.os_name, sizeof(fetch.os_name), "%s", d_flag);
GetArt(&fetch, 0);
}
int flag = 0;
size_t j = 0;
for (size_t i = 0; i < sizeof(CONFIG) / sizeof(PARAMETR); i++) {
/* Print ascii logo */
if (j < fetch.logo_size && !flag && !l_flag)
printf("%s", fetch.logo[j]);
else if (j >= fetch.logo_size && !flag && !l_flag)
printf("%s", fetch.logo[fetch.logo_size - 1]);
/* Function exec */
if (CONFIG[i].func(CONFIG[i].title, fetch)) {
flag = 1;
printf("\033[0m");
}
else {
flag = 0;
j++;
printf("\033[0m\n");
}
}
for (; j < fetch.logo_size; j++)
if (!l_flag)
printf("%s\n", fetch.logo[j]);
printf("\033[0m");
return 0;
}