diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-09-08 22:53:11 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-09-09 01:54:38 +0200 |
| commit | 758bcded6f954a60d4b9a38d12b51c68260e08f6 (patch) | |
| tree | 90180a98848fef2e579e7ce255ae82618748cea9 /src/lib/kdm_cli.cc | |
| parent | 3daded6109b5a931b0764e8c5d461310c82ea1ed (diff) | |
Fix missing screen description in KDM CLI if you use the parameters in the "wrong" order.
Diffstat (limited to 'src/lib/kdm_cli.cc')
| -rw-r--r-- | src/lib/kdm_cli.cc | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/lib/kdm_cli.cc b/src/lib/kdm_cli.cc index 4c1a55d7d..56977b521 100644 --- a/src/lib/kdm_cli.cc +++ b/src/lib/kdm_cli.cc @@ -422,7 +422,8 @@ try auto filename_format = Config::instance()->kdm_filename_format(); optional<string> cinema_name; shared_ptr<Cinema> cinema; - string screen_description; + optional<boost::filesystem::path> certificate; + string screen; list<shared_ptr<Screen>> screens; optional<dcp::EncryptedKDM> dkdm; optional<boost::posix_time::ptime> valid_from; @@ -534,19 +535,11 @@ try cinema = make_shared<Cinema>(optarg, list<string>(), "", 0, 0); break; case 'S': - screen_description = optarg; + screen = optarg; break; case 'C': - { - /* Make a new screen and add it to the current cinema */ - dcp::CertificateChain chain (dcp::file_to_string(optarg)); - auto screen = std::make_shared<Screen>(screen_description, "", chain.leaf(), boost::none, vector<TrustedDevice>()); - if (cinema) { - cinema->add_screen (screen); - } - screens.push_back (screen); + certificate = optarg; break; - } case 'T': /* A trusted device ends up in the last screen we made */ if (!screens.empty ()) { @@ -562,6 +555,16 @@ try } } + if (certificate) { + /* Make a new screen and add it to the current cinema */ + dcp::CertificateChain chain(dcp::file_to_string(*certificate)); + auto screen_to_add = std::make_shared<Screen>(screen, "", chain.leaf(), boost::none, vector<TrustedDevice>()); + if (cinema) { + cinema->add_screen(screen_to_add); + } + screens.push_back(screen_to_add); + } + if (list_cinemas) { auto cinemas = Config::instance()->cinemas (); for (auto i: cinemas) { |
