Improve error messaging when part or programmer are invalid
This commit is contained in:
parent
9e836d7988
commit
d8ff9bef6c
117
src/main.c
117
src/main.c
|
@ -347,6 +347,35 @@ static int dev_opt(char *str) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void exit_programmer_not_found(const char *programmer) {
|
||||||
|
if(programmer && *programmer)
|
||||||
|
avrdude_message(MSG_INFO, "\n%s: cannot find programmer id %s\n", progname, programmer);
|
||||||
|
else
|
||||||
|
avrdude_message(MSG_INFO, "\n%s: no programmer has been specified on the command line "
|
||||||
|
"or in the\n%sconfig file; specify one using the -c option and try again\n",
|
||||||
|
progname, progbuf);
|
||||||
|
|
||||||
|
avrdude_message(MSG_INFO, "\nValid programmers are:\n");
|
||||||
|
list_programmers(stderr, " ", programmers, ~0);
|
||||||
|
avrdude_message(MSG_INFO, "\n");
|
||||||
|
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void exit_part_not_found(const char *partdesc) {
|
||||||
|
if(partdesc && *partdesc)
|
||||||
|
avrdude_message(MSG_INFO, "\n%s: AVR part %s not found\n", progname, partdesc);
|
||||||
|
else
|
||||||
|
avrdude_message(MSG_INFO, "\n%s: no AVR part has been specified; use -p part\n", progname);
|
||||||
|
|
||||||
|
avrdude_message(MSG_INFO, "\nValid parts are:\n");
|
||||||
|
list_parts(stderr, " ", part_list, ~0);
|
||||||
|
avrdude_message(MSG_INFO, "\n");
|
||||||
|
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* main routine
|
* main routine
|
||||||
*/
|
*/
|
||||||
|
@ -874,18 +903,18 @@ int main(int argc, char * argv [])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
avrdude_message(MSG_NOTICE, "\n");
|
|
||||||
|
|
||||||
if (partdesc) {
|
if (partdesc) {
|
||||||
if (strcmp(partdesc, "?") == 0) {
|
if (strcmp(partdesc, "?") == 0) {
|
||||||
PROGRAMMER *pgm = programmer? locate_programmer(programmers, programmer): NULL;
|
if(programmer && *programmer) {
|
||||||
int pm = pgm? pgm->prog_modes: ~0;
|
PROGRAMMER *pgm = locate_programmer(programmers, programmer);
|
||||||
avrdude_message(MSG_INFO, "\n");
|
if(!pgm)
|
||||||
if(pgm)
|
exit_programmer_not_found(programmer);
|
||||||
avrdude_message(MSG_INFO, "Valid parts for programmer %s are:\n", programmer);
|
avrdude_message(MSG_INFO, "\nValid parts for programmer %s are:\n", programmer);
|
||||||
else
|
list_parts(stderr, " ", part_list, pgm->prog_modes);
|
||||||
avrdude_message(MSG_INFO, "Valid parts are:\n");
|
} else {
|
||||||
list_parts(stderr, " ", part_list, pm);
|
avrdude_message(MSG_INFO, "\nValid parts are:\n");
|
||||||
|
list_parts(stderr, " ", part_list, ~0);
|
||||||
|
}
|
||||||
avrdude_message(MSG_INFO, "\n");
|
avrdude_message(MSG_INFO, "\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
@ -893,53 +922,41 @@ int main(int argc, char * argv [])
|
||||||
|
|
||||||
if (programmer) {
|
if (programmer) {
|
||||||
if (strcmp(programmer, "?") == 0) {
|
if (strcmp(programmer, "?") == 0) {
|
||||||
AVRPART *p = partdesc? locate_part(part_list, partdesc): NULL;
|
if(partdesc && *partdesc) {
|
||||||
int pm = p? p->prog_modes: ~0;
|
AVRPART *p = locate_part(part_list, partdesc);
|
||||||
|
if(!p)
|
||||||
avrdude_message(MSG_INFO, "\n");
|
exit_part_not_found(partdesc);
|
||||||
if(p)
|
avrdude_message(MSG_INFO, "\nValid programmers for part %s are:\n", p->desc);
|
||||||
avrdude_message(MSG_INFO, "Valid programmers for part %s are:\n", p->desc);
|
list_programmers(stderr, " ", programmers, p->prog_modes);
|
||||||
else
|
} else {
|
||||||
avrdude_message(MSG_INFO, "Valid programmers are:\n");
|
avrdude_message(MSG_INFO, "\nValid programmers are:\n");
|
||||||
list_programmers(stderr, " ", programmers, pm);
|
list_programmers(stderr, " ", programmers, ~0);
|
||||||
|
}
|
||||||
avrdude_message(MSG_INFO, "\n");
|
avrdude_message(MSG_INFO, "\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(programmer, "?type") == 0) {
|
if (strcmp(programmer, "?type") == 0) {
|
||||||
avrdude_message(MSG_INFO, "\n");
|
avrdude_message(MSG_INFO, "\nValid programmer types are:\n");
|
||||||
avrdude_message(MSG_INFO, "Valid programmer types are:\n");
|
|
||||||
list_programmer_types(stderr, " ");
|
list_programmer_types(stderr, " ");
|
||||||
avrdude_message(MSG_INFO, "\n");
|
avrdude_message(MSG_INFO, "\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
avrdude_message(MSG_NOTICE, "\n");
|
||||||
|
|
||||||
if (programmer[0] == 0) {
|
if (!programmer || !*programmer)
|
||||||
avrdude_message(MSG_INFO, "\n%s: no programmer has been specified on the command line "
|
exit_programmer_not_found(NULL);
|
||||||
"or the config file\n",
|
|
||||||
progname);
|
|
||||||
avrdude_message(MSG_INFO, "%sSpecify a programmer using the -c option and try again\n\n",
|
|
||||||
progbuf);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
pgm = locate_programmer(programmers, programmer);
|
pgm = locate_programmer(programmers, programmer);
|
||||||
if (pgm == NULL) {
|
if (pgm == NULL)
|
||||||
avrdude_message(MSG_INFO, "\n");
|
exit_programmer_not_found(programmer);
|
||||||
avrdude_message(MSG_INFO, "%s: Can't find programmer id \"%s\"\n",
|
|
||||||
progname, programmer);
|
|
||||||
avrdude_message(MSG_INFO, "\nValid programmers are:\n");
|
|
||||||
list_programmers(stderr, " ", programmers, ~0);
|
|
||||||
avrdude_message(MSG_INFO, "\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pgm->initpgm) {
|
if (pgm->initpgm) {
|
||||||
pgm->initpgm(pgm);
|
pgm->initpgm(pgm);
|
||||||
} else {
|
} else {
|
||||||
avrdude_message(MSG_INFO, "\n%s: Can't initialize the programmer.\n\n",
|
avrdude_message(MSG_INFO, "\n%s: cannot initialize the programmer\n\n", progname);
|
||||||
progname);
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -988,24 +1005,12 @@ int main(int argc, char * argv [])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (partdesc == NULL) {
|
if (partdesc == NULL)
|
||||||
avrdude_message(MSG_INFO, "%s: No AVR part has been specified, use \"-p Part\"\n\n",
|
exit_part_not_found(NULL);
|
||||||
progname);
|
|
||||||
avrdude_message(MSG_INFO, "Valid parts are:\n");
|
|
||||||
list_parts(stderr, " ", part_list, ~0);
|
|
||||||
avrdude_message(MSG_INFO, "\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
p = locate_part(part_list, partdesc);
|
p = locate_part(part_list, partdesc);
|
||||||
if (p == NULL) {
|
if (p == NULL)
|
||||||
avrdude_message(MSG_INFO, "%s: AVR Part \"%s\" not found.\n\n",
|
exit_part_not_found(partdesc);
|
||||||
progname, partdesc);
|
|
||||||
avrdude_message(MSG_INFO, "Valid parts are:\n");
|
|
||||||
list_parts(stderr, " ", part_list, ~0);
|
|
||||||
avrdude_message(MSG_INFO, "\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (exitspecs != NULL) {
|
if (exitspecs != NULL) {
|
||||||
if (pgm->parseexitspecs == NULL) {
|
if (pgm->parseexitspecs == NULL) {
|
||||||
|
|
Loading…
Reference in New Issue