From 85322effa3eae7b7f0f7550f976fd6f83c874a00 Mon Sep 17 00:00:00 2001 From: Anser Date: Mon, 17 Aug 2026 12:10:35 +0200 Subject: clean the cfetch.c file, created a seperate parser.c file --- Makefile | 1 + ascii/cccp.ascii | 1 - src/cfetch.c | 56 +-------------------------------------------- src/parser.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 56 deletions(-) create mode 100644 src/parser.c diff --git a/Makefile b/Makefile index b4a3dcb..fe2e4a8 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,7 @@ TARGET = cfetch SRC = src/cfetch.c \ src/sysinfo.c \ src/ascii.c \ + src/parser.c \ src/utils.c .PHONY: all clean install uninstall debug diff --git a/ascii/cccp.ascii b/ascii/cccp.ascii index ad4498b..f0f8008 100644 --- a/ascii/cccp.ascii +++ b/ascii/cccp.ascii @@ -8,4 +8,3 @@ Proletarier aller Länder, \_________________/ Пролетарии всех стран, соединяйтесь! - diff --git a/src/cfetch.c b/src/cfetch.c index eef3bae..2e6ff6c 100644 --- a/src/cfetch.c +++ b/src/cfetch.c @@ -24,12 +24,6 @@ #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); @@ -38,7 +32,7 @@ int main(int argc, char **argv) struct system_info_t info = { 0 }; //info.debug = 1; // set default artwork - info.ascii_art = 3; + info.ascii_art = 0; // set systeminformation // use // to uncomment or comment @@ -63,51 +57,3 @@ int main(int argc, char **argv) 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"); -} diff --git a/src/parser.c b/src/parser.c new file mode 100644 index 0000000..fa52c3d --- /dev/null +++ b/src/parser.c @@ -0,0 +1,69 @@ +/* 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 . +*/ + +#include "../include/cfetch.h" + +#define COMMAND(large, small) \ + (!strcmp(argv[i], large) || !strcmp(argv[i], small)) + +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"); +} -- cgit v1.2.3