13
0

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
Signed by: rgareus
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;
}
static void print_version(int status) {
static void print_version () {
printf (ARD_PROG_NAME " " VERSION "\n\n");
printf (
"Copyright (C) 2014 Robin Gareus <robin@gareus.org>\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"
);
exit (status);
exit (EXIT_SUCCESS);
}
static void usage(int status) {
static void usage () {
printf (ARD_PROG_NAME " - DBus Audio Reservation Utility.\n");
printf ("Usage: " ARD_PROG_NAME " [ OPTIONS ] <Audio-Device-ID>\n");
printf ("Options:\n\
@ -103,7 +103,7 @@ Examples:\n\
\n");
printf ("Report bugs to Robin Gareus <robin@gareus.org>\n");
exit (status);
exit (EXIT_SUCCESS);
}
static struct option const long_options[] =
@ -163,7 +163,7 @@ int main(int argc, char **argv) {
switch (c) {
case 'h':
free(name);
usage(EXIT_SUCCESS);
usage ();
break;
case 'n':
free(name);
@ -178,21 +178,23 @@ int main(int argc, char **argv) {
break;
case 'V':
free(name);
print_version(EXIT_SUCCESS);
print_version ();
break;
case 'w':
release_wait_for_signal = 1;
break;
default:
free(name);
usage(EXIT_FAILURE);
fprintf (stderr, "Error: unrecognized option. See --help for usage information.\n");
exit (EXIT_FAILURE);
break;
}
}
if (optind + 1 != argc) {
fprintf (stderr, "Error: Missing parameter. See --help for usage information.\n");
free(name);
usage(EXIT_FAILURE);
return EXIT_FAILURE;
}
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)
printf (UTILNAME " - copy mixer settings from one session to another.\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"
"Website: <http://ardour.org/>\n");
::exit (status);
::exit (EXIT_SUCCESS);
}
static bool ends_with (std::string const& value, std::string const& ending)
@ -308,7 +308,7 @@ int main (int argc, char* argv[])
break;
case 'h':
usage (EXIT_SUCCESS);
usage ();
break;
case 'l':
@ -330,15 +330,17 @@ int main (int argc, char* argv[])
break;
default:
usage (EXIT_FAILURE);
break;
cerr << "Error: unrecognized option. See --help for usage information.\n";
::exit (EXIT_FAILURE);
break;
}
}
// TODO parse path/name from a single argument.
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];

View File

@ -207,7 +207,7 @@ static int export_session (Session *session,
return 0;
}
static void usage (int status) {
static void usage () {
// help2man compatible format (standard GNU help-text)
printf (UTILNAME " - export an ardour session from the commandline.\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"
"Website: <http://ardour.org/>\n");
::exit (status);
::exit (EXIT_SUCCESS);
}
int main (int argc, char* argv[])
@ -309,17 +309,19 @@ int main (int argc, char* argv[])
break;
case 'h':
usage (EXIT_SUCCESS);
usage ();
break;
default:
usage (EXIT_FAILURE);
break;
cerr << "Error: unrecognized option. See --help for usage information.\n";
::exit (EXIT_FAILURE);
break;
}
}
if (optind + 2 > argc) {
usage (EXIT_FAILURE);
cerr << "Error: Missing parameter. See --help for usage information.\n";
::exit (EXIT_FAILURE);
}
SessionUtils::init(false);

View File

@ -334,7 +334,7 @@ apply_one_source_per_source_fix (Session* session)
return true;
}
static void usage (int status) {
static void usage () {
// 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 ("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"
"Website: <http://ardour.org/>\n");
::exit (status);
::exit (EXIT_SUCCESS);
}
int main (int argc, char* argv[])
@ -417,9 +417,6 @@ int main (int argc, char* argv[])
case 'o':
outfile = optarg;
if (outfile.empty()) {
usage (EXIT_SUCCESS);
}
break;
case 'V':
@ -429,17 +426,19 @@ int main (int argc, char* argv[])
break;
case 'h':
usage (EXIT_SUCCESS);
usage ();
break;
default:
usage (EXIT_FAILURE);
cerr << "Error: unrecognized option. See --help for usage information.\n";
::exit (EXIT_FAILURE);
break;
}
}
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]);

View File

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

View File

@ -32,8 +32,7 @@ using namespace std;
using namespace ARDOUR;
using namespace SessionUtils;
static void
usage (int status)
static void usage ()
{
// help2man compatible format (standard GNU help-text)
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"
"Website: <http://ardour.org/>\n");
::exit (status);
::exit (EXIT_SUCCESS);
}
static void
@ -210,11 +209,12 @@ main (int argc, char* argv[])
break;
case 'h':
usage (EXIT_SUCCESS);
usage ();
break;
default:
usage (EXIT_FAILURE);
cerr << "Error: unrecognized option. See --help for usage information.\n";
::exit (EXIT_FAILURE);
break;
}
}
@ -226,7 +226,8 @@ main (int argc, char* argv[])
} else if (optind + 1 == argc) {
snapshot_name = Glib::path_get_basename (argv[optind]);
} else {
usage (EXIT_FAILURE);
cerr << "Error: Missing parameter. See --help for usage information.\n";
::exit (EXIT_FAILURE);
}
if (snapshot_name.empty ()) {