Merge pull request #74 from Guaxinim5573/main
[NEW-FEATURE] Add --config and merged --custom into --image
This commit is contained in:
commit
f87068f6f8
2 changed files with 18 additions and 19 deletions
27
uwufetch.c
27
uwufetch.c
|
@ -62,7 +62,7 @@ int ascii_image_flag = 0,
|
||||||
show_colors = 1;
|
show_colors = 1;
|
||||||
char user[32], host[256], shell[64], kernel[256], version_name[64], cpu_model[256],
|
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'}},
|
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()
|
// functions definitions, to use them in main()
|
||||||
int pkgman();
|
int pkgman();
|
||||||
|
@ -81,24 +81,21 @@ int main(int argc, char *argv[]) {
|
||||||
int opt = 0;
|
int opt = 0;
|
||||||
static struct option long_options[] = {
|
static struct option long_options[] = {
|
||||||
{ "ascii", no_argument, NULL, 'a' },
|
{ "ascii", no_argument, NULL, 'a' },
|
||||||
{ "custom", required_argument, NULL, 'c' },
|
{ "config", required_argument, NULL, 'c'},
|
||||||
{ "config", required_argument, NULL, 0},
|
|
||||||
{ "distro", required_argument, NULL, 'd' },
|
{ "distro", required_argument, NULL, 'd' },
|
||||||
{ "help", no_argument, NULL, 'h' },
|
{ "help", no_argument, NULL, 'h' },
|
||||||
{ "image", no_argument, NULL, 'i' },
|
{ "image", optional_argument, NULL, 'i' },
|
||||||
{ "list", no_argument, NULL, 'l' },
|
{ "list", no_argument, NULL, 'l' },
|
||||||
{ NULL, 0, NULL, 0 }
|
{ NULL, 0, NULL, 0 }
|
||||||
};
|
};
|
||||||
get_info();
|
get_info();
|
||||||
parse_config();
|
while ((opt = getopt_long(argc, argv, "ac:d:hi::l", long_options, NULL)) != -1) {
|
||||||
while ((opt = getopt_long(argc, argv, "ad:hilc:", long_options, NULL)) != -1) {
|
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'a':
|
case 'a':
|
||||||
ascii_image_flag = 0;
|
ascii_image_flag = 0;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
ascii_image_flag = 1;
|
config_directory = optarg;
|
||||||
sprintf(image_name, "%s", optarg);
|
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
if (optarg) sprintf(version_name, "%s", optarg);
|
if (optarg) sprintf(version_name, "%s", optarg);
|
||||||
|
@ -108,6 +105,8 @@ int main(int argc, char *argv[]) {
|
||||||
return 0;
|
return 0;
|
||||||
case 'i':
|
case 'i':
|
||||||
ascii_image_flag = 1;
|
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;
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
list(argv[0]);
|
list(argv[0]);
|
||||||
|
@ -116,6 +115,7 @@ int main(int argc, char *argv[]) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
parse_config();
|
||||||
if ((argc == 1 && ascii_image_flag == 0) || (argc > 1 && ascii_image_flag == 0)) print_ascii();
|
if ((argc == 1 && ascii_image_flag == 0) || (argc > 1 && ascii_image_flag == 0)) print_ascii();
|
||||||
else if (ascii_image_flag) print_image();
|
else if (ascii_image_flag) print_image();
|
||||||
uwu_name();
|
uwu_name();
|
||||||
|
@ -126,12 +126,14 @@ void parse_config() {
|
||||||
char line[256];
|
char line[256];
|
||||||
char *homedir = getenv("HOME");
|
char *homedir = getenv("HOME");
|
||||||
char *temp_buffer = "";
|
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;
|
if(config == NULL) return;
|
||||||
while(fgets(line, sizeof(line), config)) {
|
while(fgets(line, sizeof(line), config)) {
|
||||||
if(line[0] == '#') continue;
|
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);
|
sscanf(line, "distro=%s", version_name);
|
||||||
if (sscanf(line, "nouser%s", temp_buffer)) show_user_info = 0;
|
if (sscanf(line, "nouser%s", temp_buffer)) show_user_info = 0;
|
||||||
if (sscanf(line, "noos%s", temp_buffer)) show_os = 0;
|
if (sscanf(line, "noos%s", temp_buffer)) show_os = 0;
|
||||||
|
@ -508,11 +510,10 @@ void print_image() { // prints logo (as an image) of the given system. distribut
|
||||||
void usage(char *arg) {
|
void usage(char *arg) {
|
||||||
printf( "Usage: %s <args>\n"
|
printf( "Usage: %s <args>\n"
|
||||||
" -a, --ascii prints logo as ascii text (default)\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`
|
" -c --config use custom config path\n"
|
||||||
" --config use custom config path\n"
|
|
||||||
" -d, --distro lets you choose the logo to print\n"
|
" -d, --distro lets you choose the logo to print\n"
|
||||||
" -h, --help prints this help page\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"
|
" %sworks in most terminals\n"
|
||||||
" read README.md for more info%s\n"
|
" read README.md for more info%s\n"
|
||||||
" -l, --list lists all supported distributions\n",
|
" -l, --list lists all supported distributions\n",
|
||||||
|
|
|
@ -16,10 +16,7 @@ uwufetch - A meme system info tool for Linux, based on nyan/uwu trend on r/linux
|
||||||
-a --ascii\
|
-a --ascii\
|
||||||
prints the logo as ascii text (default)
|
prints the logo as ascii text (default)
|
||||||
|
|
||||||
-c --custom\
|
-c --config\
|
||||||
you can choose a custom image path
|
|
||||||
|
|
||||||
--config\
|
|
||||||
you can change config path
|
you can change config path
|
||||||
|
|
||||||
-d --distro\
|
-d --distro\
|
||||||
|
@ -29,7 +26,8 @@ you can choose the logo to print by the distro name
|
||||||
prints a help page
|
prints a help page
|
||||||
|
|
||||||
-i --image\
|
-i --image\
|
||||||
prints image instead of ascii logo
|
prints image instead of ascii logo\
|
||||||
|
uses a custom image if one is provided
|
||||||
|
|
||||||
-l --list\
|
-l --list\
|
||||||
prints a list of all supported distributions
|
prints a list of all supported distributions
|
||||||
|
|
Loading…
Reference in a new issue