Don't print usage to stdout for invalid parameters

This commit is contained in:
Robin Gareus 2019-08-15 01:07:41 +02:00
parent 4aedf9c3ea
commit 316880b9cf
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
6 changed files with 48 additions and 40 deletions

View file

@ -56,17 +56,17 @@ static int stdin_available(void) {
return errno != EBADF; return errno != EBADF;
} }
static void print_version(int status) { static void print_version () {
printf (ARD_PROG_NAME " " VERSION "\n\n"); printf (ARD_PROG_NAME " " VERSION "\n\n");
printf ( printf (
"Copyright (C) 2014 Robin Gareus <robin@gareus.org>\n" "Copyright (C) 2014 Robin Gareus <robin@gareus.org>\n"
"This is free software; see the source for copying conditions. There is NO\n" "This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
); );
exit (status); exit (EXIT_SUCCESS);
} }
static void usage(int status) { static void usage () {
printf (ARD_PROG_NAME " - DBus Audio Reservation Utility.\n"); printf (ARD_PROG_NAME " - DBus Audio Reservation Utility.\n");
printf ("Usage: " ARD_PROG_NAME " [ OPTIONS ] <Audio-Device-ID>\n"); printf ("Usage: " ARD_PROG_NAME " [ OPTIONS ] <Audio-Device-ID>\n");
printf ("Options:\n\ printf ("Options:\n\
@ -103,7 +103,7 @@ Examples:\n\
\n"); \n");
printf ("Report bugs to Robin Gareus <robin@gareus.org>\n"); printf ("Report bugs to Robin Gareus <robin@gareus.org>\n");
exit (status); exit (EXIT_SUCCESS);
} }
static struct option const long_options[] = static struct option const long_options[] =
@ -163,7 +163,7 @@ int main(int argc, char **argv) {
switch (c) { switch (c) {
case 'h': case 'h':
free(name); free(name);
usage(EXIT_SUCCESS); usage ();
break; break;
case 'n': case 'n':
free(name); free(name);
@ -178,21 +178,23 @@ int main(int argc, char **argv) {
break; break;
case 'V': case 'V':
free(name); free(name);
print_version(EXIT_SUCCESS); print_version ();
break; break;
case 'w': case 'w':
release_wait_for_signal = 1; release_wait_for_signal = 1;
break; break;
default: default:
free(name); free(name);
usage(EXIT_FAILURE); fprintf (stderr, "Error: unrecognized option. See --help for usage information.\n");
exit (EXIT_FAILURE);
break; break;
} }
} }
if (optind + 1 != argc) { if (optind + 1 != argc) {
fprintf (stderr, "Error: Missing parameter. See --help for usage information.\n");
free(name); free(name);
usage(EXIT_FAILURE); return EXIT_FAILURE;
} }
const char *device_name = argv[optind]; const char *device_name = argv[optind];

View file

@ -246,7 +246,7 @@ copy_session_routes (
} }
static void usage (int status) { static void usage () {
// help2man compatible format (standard GNU help-text) // help2man compatible format (standard GNU help-text)
printf (UTILNAME " - copy mixer settings from one session to another.\n\n"); printf (UTILNAME " - copy mixer settings from one session to another.\n\n");
printf ("Usage: " UTILNAME " [ OPTIONS ] <src> <dst>\n\n"); printf ("Usage: " UTILNAME " [ OPTIONS ] <src> <dst>\n\n");
@ -270,7 +270,7 @@ When --snapshot is set, a new snaphot in the <dst> session is created.\n\
printf ("Report bugs to <http://tracker.ardour.org/>\n" printf ("Report bugs to <http://tracker.ardour.org/>\n"
"Website: <http://ardour.org/>\n"); "Website: <http://ardour.org/>\n");
::exit (status); ::exit (EXIT_SUCCESS);
} }
static bool ends_with (std::string const& value, std::string const& ending) static bool ends_with (std::string const& value, std::string const& ending)
@ -308,7 +308,7 @@ int main (int argc, char* argv[])
break; break;
case 'h': case 'h':
usage (EXIT_SUCCESS); usage ();
break; break;
case 'l': case 'l':
@ -330,15 +330,17 @@ int main (int argc, char* argv[])
break; break;
default: default:
usage (EXIT_FAILURE); cerr << "Error: unrecognized option. See --help for usage information.\n";
break; ::exit (EXIT_FAILURE);
break;
} }
} }
// TODO parse path/name from a single argument. // TODO parse path/name from a single argument.
if (optind + 2 > argc) { if (optind + 2 > argc) {
usage (EXIT_FAILURE); cerr << "Error: Missing parameter. See --help for usage information.\n";
::exit (EXIT_FAILURE);
} }
std::string src = argv[optind]; std::string src = argv[optind];

View file

@ -207,7 +207,7 @@ static int export_session (Session *session,
return 0; return 0;
} }
static void usage (int status) { static void usage () {
// help2man compatible format (standard GNU help-text) // help2man compatible format (standard GNU help-text)
printf (UTILNAME " - export an ardour session from the commandline.\n\n"); printf (UTILNAME " - export an ardour session from the commandline.\n\n");
printf ("Usage: " UTILNAME " [ OPTIONS ] <session-dir> <session/snapshot-name>\n\n"); printf ("Usage: " UTILNAME " [ OPTIONS ] <session-dir> <session/snapshot-name>\n\n");
@ -231,7 +231,7 @@ Note: the tool expects a session-name without .ardour file-name extension.\n\
printf ("Report bugs to <http://tracker.ardour.org/>\n" printf ("Report bugs to <http://tracker.ardour.org/>\n"
"Website: <http://ardour.org/>\n"); "Website: <http://ardour.org/>\n");
::exit (status); ::exit (EXIT_SUCCESS);
} }
int main (int argc, char* argv[]) int main (int argc, char* argv[])
@ -309,17 +309,19 @@ int main (int argc, char* argv[])
break; break;
case 'h': case 'h':
usage (EXIT_SUCCESS); usage ();
break; break;
default: default:
usage (EXIT_FAILURE); cerr << "Error: unrecognized option. See --help for usage information.\n";
break; ::exit (EXIT_FAILURE);
break;
} }
} }
if (optind + 2 > argc) { if (optind + 2 > argc) {
usage (EXIT_FAILURE); cerr << "Error: Missing parameter. See --help for usage information.\n";
::exit (EXIT_FAILURE);
} }
SessionUtils::init(false); SessionUtils::init(false);

View file

@ -334,7 +334,7 @@ apply_one_source_per_source_fix (Session* session)
return true; return true;
} }
static void usage (int status) { static void usage () {
// help2man compatible format (standard GNU help-text) // help2man compatible format (standard GNU help-text)
printf (UTILNAME " - convert an ardour session with 5.0 - 5.3 midi sources to be compatible with 5.4.\n\n"); printf (UTILNAME " - convert an ardour session with 5.0 - 5.3 midi sources to be compatible with 5.4.\n\n");
printf ("Usage: " UTILNAME " [ OPTIONS ] <session-dir> <snapshot-name>\n\n"); printf ("Usage: " UTILNAME " [ OPTIONS ] <session-dir> <snapshot-name>\n\n");
@ -389,7 +389,7 @@ If a MIDI session only contains quarter note meter divisors, it will be unaffect
printf ("Report bugs to <http://tracker.ardour.org/>\n" printf ("Report bugs to <http://tracker.ardour.org/>\n"
"Website: <http://ardour.org/>\n"); "Website: <http://ardour.org/>\n");
::exit (status); ::exit (EXIT_SUCCESS);
} }
int main (int argc, char* argv[]) int main (int argc, char* argv[])
@ -417,9 +417,6 @@ int main (int argc, char* argv[])
case 'o': case 'o':
outfile = optarg; outfile = optarg;
if (outfile.empty()) {
usage (EXIT_SUCCESS);
}
break; break;
case 'V': case 'V':
@ -429,17 +426,19 @@ int main (int argc, char* argv[])
break; break;
case 'h': case 'h':
usage (EXIT_SUCCESS); usage ();
break; break;
default: default:
usage (EXIT_FAILURE); cerr << "Error: unrecognized option. See --help for usage information.\n";
::exit (EXIT_FAILURE);
break; break;
} }
} }
if (optind + 2 > argc) { if (optind + 2 > argc) {
usage (EXIT_FAILURE); cerr << "Error: Missing parameter. See --help for usage information.\n";
::exit (EXIT_FAILURE);
} }
SessionDirectory* session_dir = new SessionDirectory (argv[optind]); SessionDirectory* session_dir = new SessionDirectory (argv[optind]);

View file

@ -29,7 +29,7 @@ using namespace ARDOUR;
using namespace SessionUtils; using namespace SessionUtils;
static void usage (int status) static void usage ()
{ {
// help2man compatible format (standard GNU help-text) // help2man compatible format (standard GNU help-text)
printf (UTILNAME " - create a new empty session from the commandline.\n\n"); printf (UTILNAME " - create a new empty session from the commandline.\n\n");
@ -55,7 +55,7 @@ Examples:\n\
printf ("Report bugs to <http://tracker.ardour.org/>\n" printf ("Report bugs to <http://tracker.ardour.org/>\n"
"Website: <http://ardour.org/>\n"); "Website: <http://ardour.org/>\n");
::exit (status); ::exit (EXIT_SUCCESS);
} }
int main (int argc, char* argv[]) int main (int argc, char* argv[])
@ -92,11 +92,12 @@ int main (int argc, char* argv[])
break; break;
case 'h': case 'h':
usage (EXIT_SUCCESS); usage ();
break; break;
default: default:
usage (EXIT_FAILURE); cerr << "Error: unrecognized option. See --help for usage information.\n";
::exit (EXIT_FAILURE);
break; break;
} }
} }
@ -108,11 +109,12 @@ int main (int argc, char* argv[])
} else if (optind + 1 == argc) { } else if (optind + 1 == argc) {
snapshot_name = Glib::path_get_basename (argv[optind]); snapshot_name = Glib::path_get_basename (argv[optind]);
} else { } else {
usage (EXIT_FAILURE); cerr << "Error: Missing parameter. See --help for usage information.\n";
::exit (EXIT_FAILURE);
} }
if (snapshot_name.empty ()) { if (snapshot_name.empty ()) {
fprintf(stderr, "Error: Invalid empty session/snapshot name.\n"); cerr << "Error: Invalid empty session/snapshot name.\n";
::exit (EXIT_FAILURE); ::exit (EXIT_FAILURE);
} }

View file

@ -32,8 +32,7 @@ using namespace std;
using namespace ARDOUR; using namespace ARDOUR;
using namespace SessionUtils; using namespace SessionUtils;
static void static void usage ()
usage (int status)
{ {
// help2man compatible format (standard GNU help-text) // help2man compatible format (standard GNU help-text)
printf (UTILNAME " - create a new session from the commandline.\n\n"); printf (UTILNAME " - create a new session from the commandline.\n\n");
@ -70,7 +69,7 @@ Examples:\n\
printf ("Report bugs to <http://tracker.ardour.org/>\n" printf ("Report bugs to <http://tracker.ardour.org/>\n"
"Website: <http://ardour.org/>\n"); "Website: <http://ardour.org/>\n");
::exit (status); ::exit (EXIT_SUCCESS);
} }
static void static void
@ -210,11 +209,12 @@ main (int argc, char* argv[])
break; break;
case 'h': case 'h':
usage (EXIT_SUCCESS); usage ();
break; break;
default: default:
usage (EXIT_FAILURE); cerr << "Error: unrecognized option. See --help for usage information.\n";
::exit (EXIT_FAILURE);
break; break;
} }
} }
@ -226,7 +226,8 @@ main (int argc, char* argv[])
} else if (optind + 1 == argc) { } else if (optind + 1 == argc) {
snapshot_name = Glib::path_get_basename (argv[optind]); snapshot_name = Glib::path_get_basename (argv[optind]);
} else { } else {
usage (EXIT_FAILURE); cerr << "Error: Missing parameter. See --help for usage information.\n";
::exit (EXIT_FAILURE);
} }
if (snapshot_name.empty ()) { if (snapshot_name.empty ()) {