From 758bcded6f954a60d4b9a38d12b51c68260e08f6 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 8 Sep 2022 22:53:11 +0200 Subject: Fix missing screen description in KDM CLI if you use the parameters in the "wrong" order. --- src/lib/kdm_cli.cc | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/lib/kdm_cli.cc') 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 cinema_name; shared_ptr cinema; - string screen_description; + optional certificate; + string screen; list> screens; optional dkdm; optional valid_from; @@ -534,19 +535,11 @@ try cinema = make_shared(optarg, list(), "", 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_description, "", chain.leaf(), boost::none, vector()); - 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, "", chain.leaf(), boost::none, vector()); + 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) { -- cgit v1.2.3