/* cfetch is my try to implement a neofetch/fastfetch/commiefetch clone in C. * Copyright (C) 2026 Anser * * cfetch is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * cfetch is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef CFETCH_VERSION #define CFETCH_VERSION 0.1.1 #endif #include "../include/cfetch.h" #include #include #define COMMAND(large, small) \ (!strcmp(argv[i], large) || !strcmp(argv[i], small)) void parse_args(int argc, char** argv); void print_help(); int main(int argc, char **argv) { parse_args(argc, argv); struct system_info_t info = { 0 }; //info.debug = 1; // set default artwork info.ascii_art = 3; // set systeminformation // use // to uncomment or comment get_os_release(&info); get_kernel(&info); get_cpu(&info); get_memory(&info); print_system_info(&info); return 0; } /* not yet implemented: get_uptime get_packages get_shell get_resolution get_de get_wm get_terminal get_host: Laptop name? Precision 7680 get_gpu get_colours ? */ void parse_cmd(int argc, char **argv) { for (int i = 1; i < argc; i++) { if (argv[i][0] != '-') { fprintf(stderr, "Error: invalid option: \"%s\". An option must start with `-`\n", argv[i]); print_help(); exit(1); } if (COMMAND("--help", "-h")) { print_help(); exit(1); } if (COMMAND("--version", "-v")) { printf("cfetch version: 0.1.1\n"); exit(0); } else { fprintf(stderr, "Error: invalid option: \"%s\"\n", argv[i]); print_help(); exit(1); } } return; } void parse_args(int argc, char **argv) { if (argc == 1) { return; } parse_cmd(argc, argv); return; } void print_help() { printf("\ncfetch, the neofetch/commifetch clone!\n"); printf("\nusage: cfetch\t [-v | --version] [-h | --help]\n"); printf(" -v --version\t prints the current version of cfetch.\n"); printf(" -h --help\t prints the helper menu of cfetch.\n"); }