diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c256dab..6cdcd3a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -55,4 +55,9 @@ If you are requesting a feature, please specify if you are already working on it I know that adding this file now is a bit late, but I am writing this anyway, just to appear as a _professional_ programmer, even though I am not. +<<<<<<< HEAD I woult take some space to thank all the [contributors](https://github.com/TheDarkBug/uwufetch/graphs/contributors) that made this project better every day. +======= +I would take some space to thank all the [contributors](https://github.com/TheDarkBug/uwufetch/graphs/contributors) that made this project better every day. + +> > > > > > > f87068f6f8746dbabd4f8936766b4389c07591ca diff --git a/uwufetch.c b/uwufetch.c index ffe8a80..52ed008 100644 --- a/uwufetch.c +++ b/uwufetch.c @@ -62,7 +62,7 @@ int ascii_image_flag = 0, show_colors = 1; char user[32], host[256], shell[64], kernel[256], version_name[64], cpu_model[256], gpu_model[8][256] = {{'0'}, {'0'}, {'0'}, {'0'}, {'0'}, {'0'}, {'0'}, {'0'}}, - pkgman_name[64], image_name[32]; + pkgman_name[64], image_name[128], *config_directory = NULL; // functions definitions, to use them in main() int pkgman(); @@ -82,16 +82,14 @@ int main(int argc, char *argv[]) int opt = 0; static struct option long_options[] = { {"ascii", no_argument, NULL, 'a'}, - {"custom", required_argument, NULL, 'c'}, - {"config", required_argument, NULL, 0}, + {"config", required_argument, NULL, 'c'}, {"distro", required_argument, NULL, 'd'}, {"help", no_argument, NULL, 'h'}, - {"image", no_argument, NULL, 'i'}, + {"image", optional_argument, NULL, 'i'}, {"list", no_argument, NULL, 'l'}, {NULL, 0, NULL, 0}}; get_info(); - parse_config(); - while ((opt = getopt_long(argc, argv, "ad:hilc:", long_options, NULL)) != -1) + while ((opt = getopt_long(argc, argv, "ac:d:hi::l", long_options, NULL)) != -1) { switch (opt) { @@ -99,8 +97,7 @@ int main(int argc, char *argv[]) ascii_image_flag = 0; break; case 'c': - ascii_image_flag = 1; - sprintf(image_name, "%s", optarg); + config_directory = optarg; break; case 'd': if (optarg) @@ -111,6 +108,10 @@ int main(int argc, char *argv[]) return 0; case 'i': ascii_image_flag = 1; + if (!optarg && argv[optind] != NULL && argv[optind][0] != '-') + sprintf(image_name, "%s", argv[optind++]); + else if (optarg) + sprintf(image_name, "%s", optarg); break; case 'l': list(argv[0]); @@ -119,6 +120,7 @@ int main(int argc, char *argv[]) break; } } + parse_config(); if ((argc == 1 && ascii_image_flag == 0) || (argc > 1 && ascii_image_flag == 0)) print_ascii(); else if (ascii_image_flag) @@ -132,15 +134,20 @@ void parse_config() char line[256]; char *homedir = getenv("HOME"); char *temp_buffer = ""; + FILE *config; - FILE *config = fopen(strcat(homedir, "/.config/uwufetch/config"), "r"); + if (config_directory == NULL) + config = fopen(strcat(homedir, "/.config/uwufetch/config"), "r"); + else + config = fopen(config_directory, "r"); if (config == NULL) return; while (fgets(line, sizeof(line), config)) { if (line[0] == '#') continue; - ascii_image_flag = sscanf(line, "image=%s", image_name); + if (strlen(image_name) < 1 && ascii_image_flag == 0) + ascii_image_flag = sscanf(line, "image=%s", image_name); sscanf(line, "distro=%s", version_name); if (sscanf(line, "nouser%s", temp_buffer)) show_user_info = 0; @@ -621,11 +628,10 @@ void usage(char *arg) { printf("Usage: %s \n" " -a, --ascii prints logo as ascii text (default)\n" - " -c, --custom choose a custom image\n" // this options should be different, maybe merged with `-i` - " --config use custom config path\n" + " -c --config use custom config path\n" " -d, --distro lets you choose the logo to print\n" " -h, --help prints this help page\n" - " -i, --image prints logo as image\n" // someone should add an optional argument to change image without using `-c`, but I don't know how to do it. + " -i, --image prints logo as image and use a custom image if provided\n" " %sworks in most terminals\n" " read README.md for more info%s\n" " -l, --list lists all supported distributions\n", diff --git a/uwufetch_man.md b/uwufetch_man.md index a029236..7d689f7 100644 --- a/uwufetch_man.md +++ b/uwufetch_man.md @@ -21,10 +21,7 @@ uwufetch - A meme system info tool for Linux, based on nyan/uwu trend on r/linux -a --ascii\ prints the logo as ascii text (default) --c --custom\ -you can choose a custom image path - ---config\ +-c --config\ you can change config path -d --distro\ @@ -34,7 +31,8 @@ you can choose the logo to print by the distro name prints a help page -i --image\ -prints image instead of ascii logo +prints image instead of ascii logo\ +uses a custom image if one is provided -l --list\ prints a list of all supported distributions