mirror of
https://github.com/Dr-Noob/cpufetch.git
synced 2026-03-25 07:50:40 +01:00
Fixed little bug in amd. Introduced feature to check version
This commit is contained in:
@@ -22,6 +22,9 @@ Theoretical peak flops
|
||||
\fB\-\-help\fR
|
||||
Prints help
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
Prints cpufetch version
|
||||
.TP
|
||||
\fB\-\-style\fR
|
||||
Specify the color style of ascii logo
|
||||
.SH BUGS
|
||||
|
||||
20
src/args.c
20
src/args.c
@@ -5,13 +5,16 @@
|
||||
|
||||
#define ARG_STR_STYLE "style"
|
||||
#define ARG_STR_HELP "help"
|
||||
#define ARG_STR_VERSION "version"
|
||||
#define ARG_CHAR_STYLE 's'
|
||||
#define ARG_CHAR_HELP 'h'
|
||||
#define ARG_CHAR_VERSION 'v'
|
||||
#define STYLE_STR_1 "default"
|
||||
#define STYLE_STR_2 "dark"
|
||||
|
||||
struct args_struct {
|
||||
int help_flag;
|
||||
int version_flag;
|
||||
STYLE style;
|
||||
};
|
||||
|
||||
@@ -36,6 +39,10 @@ int showHelp() {
|
||||
return args.help_flag;
|
||||
}
|
||||
|
||||
int showVersion() {
|
||||
return args.version_flag;
|
||||
}
|
||||
|
||||
int parseArgs(int argc, char* argv[]) {
|
||||
int c;
|
||||
int digit_optind = 0;
|
||||
@@ -48,6 +55,7 @@ int parseArgs(int argc, char* argv[]) {
|
||||
static struct option long_options[] = {
|
||||
{ARG_STR_STYLE, required_argument, 0, ARG_CHAR_STYLE },
|
||||
{ARG_STR_HELP, no_argument, 0, ARG_CHAR_HELP },
|
||||
{ARG_STR_VERSION, no_argument, 0, ARG_CHAR_VERSION },
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
@@ -72,6 +80,13 @@ int parseArgs(int argc, char* argv[]) {
|
||||
}
|
||||
args.help_flag = BOOLEAN_TRUE;
|
||||
}
|
||||
else if (c == ARG_CHAR_VERSION) {
|
||||
if(args.version_flag) {
|
||||
printf("ERROR: Version option specified more than once\n");
|
||||
return BOOLEAN_FALSE;
|
||||
}
|
||||
args.version_flag = BOOLEAN_TRUE;
|
||||
}
|
||||
else if(c == '?') {
|
||||
printf("WARNING: Invalid options\n");
|
||||
args.help_flag = BOOLEAN_TRUE;
|
||||
@@ -89,5 +104,10 @@ int parseArgs(int argc, char* argv[]) {
|
||||
args.help_flag = BOOLEAN_TRUE;
|
||||
}
|
||||
|
||||
if((args.help_flag + args.version_flag + (args.style != STYLE_EMPTY)) > 1) {
|
||||
printf("WARNING: You should specify just one option\n");
|
||||
args.help_flag = BOOLEAN_TRUE;
|
||||
}
|
||||
|
||||
return BOOLEAN_TRUE;
|
||||
}
|
||||
|
||||
@@ -6,5 +6,6 @@
|
||||
int parseArgs(int argc, char* argv[]);
|
||||
STYLE getStyle();
|
||||
int showHelp();
|
||||
int showVersion();
|
||||
|
||||
#endif
|
||||
|
||||
21
src/main.c
21
src/main.c
@@ -25,17 +25,23 @@ Peak FLOPS: 512 GFLOP/s(in simple precision)
|
||||
|
||||
***/
|
||||
|
||||
void help(int argc, char *argv[])
|
||||
{
|
||||
printf("Usage: %s [--help] [--style STYLE]\n\
|
||||
static const char* VERSION = "0.33";
|
||||
|
||||
void help(int argc, char *argv[]) {
|
||||
printf("Usage: %s [--version] [--help] [--style STYLE]\n\
|
||||
Options: \n\
|
||||
--style Set logo style color\n\
|
||||
default: Default style color\n\
|
||||
dark: Dark style color\n\n\
|
||||
--help Print this help and exit\n",
|
||||
dark: Dark style color\n\
|
||||
--help Print this help and exit\n\
|
||||
--version Print cpufetch version and exit\n",
|
||||
argv[0]);
|
||||
}
|
||||
|
||||
void version() {
|
||||
printf("cpufetch v%s\n",VERSION);
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
if(!parseArgs(argc,argv))
|
||||
return EXIT_FAILURE;
|
||||
@@ -45,6 +51,11 @@ int main(int argc, char* argv[]) {
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
if(showVersion()) {
|
||||
version();
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
struct cpuInfo* cpu = getCPUInfo();
|
||||
if(cpu == NULL)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
@@ -179,13 +179,13 @@ void print_ascii_intel(struct ascii* art) {
|
||||
}
|
||||
|
||||
/*** PRINT ATTRIBUTE ***/
|
||||
if(n>LINES_SPACE_UP-1 && n<NUMBER_OF_LINES-LINES_SPACE_DOWN)printf("%s%s%s%s"RESET"\n",art->color1,ATTRIBUTE_FIELDS[n-LINES_SPACE_UP],art->color2,art->atributes[n-LINES_SPACE_UP]);
|
||||
if(n>LINES_SPACE_UP-1 && n<NUMBER_OF_LINES-LINES_SPACE_DOWN)
|
||||
printf("%s%s%s%s"RESET"\n",art->color1,ATTRIBUTE_FIELDS[n-LINES_SPACE_UP],art->color2,art->atributes[n-LINES_SPACE_UP]);
|
||||
else printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
void print_ascii_amd(struct ascii* art) {
|
||||
int flag = BOOLEAN_FALSE;
|
||||
|
||||
for(int n=0;n<NUMBER_OF_LINES;n++) {
|
||||
/*** PRINT ASCII-ART ***/
|
||||
@@ -199,7 +199,8 @@ void print_ascii_amd(struct ascii* art) {
|
||||
}
|
||||
|
||||
/*** PRINT ATTRIBUTE ***/
|
||||
if(n>2 && n<NUMBER_OF_LINES-4)printf("%s%s%s%s"RESET"\n",art->color1,ATTRIBUTE_FIELDS[n-3],art->color2,art->atributes[n-3]);
|
||||
if(n>LINES_SPACE_UP-1 && n<NUMBER_OF_LINES-LINES_SPACE_DOWN)
|
||||
printf("%s%s%s%s"RESET"\n",art->color1,ATTRIBUTE_FIELDS[n-LINES_SPACE_UP],art->color2,art->atributes[n-LINES_SPACE_UP]);
|
||||
else printf("\n");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user