diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-07-21 03:14:10 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-07-21 03:14:10 +0100 |
| commit | d7c2644cfd074bb46922c1976044312ad07be1c7 (patch) | |
| tree | e8278517860ad78d4ddb38377d2a0c16ec8e8bff /src/tools | |
| parent | b6dc9aed0dcb5928d0f34e5db68b0c98b48c6b6e (diff) | |
Add versioning; tweak libdcp version reporting; make makedcp more useful for testing.
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/makedcp.cc | 66 |
1 files changed, 49 insertions, 17 deletions
diff --git a/src/tools/makedcp.cc b/src/tools/makedcp.cc index 15880cae9..5856ba0aa 100644 --- a/src/tools/makedcp.cc +++ b/src/tools/makedcp.cc @@ -20,6 +20,8 @@ #include <iostream> #include <iomanip> #include <getopt.h> +#include <libdcp/test_mode.h> +#include <libdcp/version.h> #include "format.h" #include "film.h" #include "filter.h" @@ -29,6 +31,7 @@ #include "ab_transcode_job.h" #include "util.h" #include "scaler.h" +#include "version.h" using namespace std; using namespace boost; @@ -36,24 +39,33 @@ using namespace boost; static void help (string n) { - cerr << "Syntax: " << n << " [--help] [--deps] [--film <film>]\n"; + cerr << "Syntax: " << n << " [OPTION] <FILM>\n" + << " -h, --help show this help\n" + << " -d, --deps list DVD-o-matic dependency details and quit\n" + << " -t, --test run in test mode (repeatable UUID generation and timestamps)\n" + << " -n, --no-progress do not print progress to stdout\n" + << "\n" + << "<FILM> is the film directory.\n"; } int main (int argc, char* argv[]) { string film_dir; + bool test_mode = false; + bool progress = true; + int option_index = 0; while (1) { static struct option long_options[] = { { "help", no_argument, 0, 'h'}, { "deps", no_argument, 0, 'd'}, - { "film", required_argument, 0, 'f'}, + { "test", no_argument, 0, 't'}, + { "no-progress", no_argument, 0, 'n'}, { 0, 0, 0, 0 } }; - int option_index = 0; - int c = getopt_long (argc, argv, "hdf:", long_options, &option_index); + int c = getopt_long (argc, argv, "hdtn", long_options, &option_index); if (c == -1) { break; @@ -66,19 +78,36 @@ main (int argc, char* argv[]) case 'd': cout << dependency_version_summary () << "\n"; exit (EXIT_SUCCESS); - case 'f': - film_dir = optarg; + case 't': + test_mode = true; + break; + case 'n': + progress = false; break; } } - if (film_dir.empty ()) { + if (optind >= argc) { help (argv[0]); exit (EXIT_FAILURE); } + + film_dir = argv[optind]; dvdomatic_setup (); + cout << "DVD-o-matic " << dvdomatic_version << " git " << dvdomatic_git_commit; + char buf[256]; + if (gethostname (buf, 256) == 0) { + cout << " on " << buf; + } + cout << "\n"; + + if (test_mode) { + libdcp::enable_test_mode (); + cout << dependency_version_summary() << "\n"; + } + Film* film = 0; try { film = new Film (film_dir, true); @@ -92,6 +121,7 @@ main (int argc, char* argv[]) cout << "A/B "; } cout << "DCP for " << film->name() << "\n"; + cout << "Test mode: " << (test_mode ? "yes" : "no") << "\n"; cout << "Content: " << film->content() << "\n"; pair<string, string> const f = Filter::ffmpeg_strings (film->filters ()); cout << "Filters: " << f.first << " " << f.second << "\n"; @@ -105,8 +135,8 @@ main (int argc, char* argv[]) while (!all_done) { sleep (5); - - if (!first) { + + if (!first && progress) { cout << "\033[" << jobs.size() << "A"; cout.flush (); } @@ -115,14 +145,16 @@ main (int argc, char* argv[]) all_done = true; for (list<shared_ptr<Job> >::iterator i = jobs.begin(); i != jobs.end(); ++i) { - cout << (*i)->name() << ": "; - - float const p = (*i)->overall_progress (); - - if (p >= 0) { - cout << (*i)->status() << " \n"; - } else { - cout << ": Running \n"; + if (progress) { + cout << (*i)->name() << ": "; + + float const p = (*i)->overall_progress (); + + if (p >= 0) { + cout << (*i)->status() << " \n"; + } else { + cout << ": Running \n"; + } } if (!(*i)->finished ()) { |
