summaryrefslogtreecommitdiff
path: root/src/lib/kdm_cli.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-06-08 20:17:43 +0200
committerCarl Hetherington <cth@carlh.net>2024-06-08 20:17:43 +0200
commit1c0dab32ab9185aa082fe281704adef661299126 (patch)
tree0290968e78164249b958362e0f8a72d778d8a092 /src/lib/kdm_cli.cc
parent3185f6330dc6ccc8ff86a0925602880c67951213 (diff)
parent8e89905d0391f2b77253fe04ad1af285b2c6fec4 (diff)
Merge remote-tracking branch 'origin/main' into v2.17.x
Diffstat (limited to 'src/lib/kdm_cli.cc')
-rw-r--r--src/lib/kdm_cli.cc26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/lib/kdm_cli.cc b/src/lib/kdm_cli.cc
index 9d5b54b9a..72f66c842 100644
--- a/src/lib/kdm_cli.cc
+++ b/src/lib/kdm_cli.cc
@@ -63,9 +63,10 @@ help (std::function<void (string)> out)
out (String::compose("Syntax: %1 [OPTION] [COMMAND] <FILM|CPL-ID|DKDM>", program_name));
out ("Commands:");
out ("create create KDMs; default if no other command is specified");
- out (variant::insert_dcpomatic("list-cinemas list known cinemas from %1 settings"));
- out (variant::insert_dcpomatic("list-dkdm-cpls list CPLs for which %1 has DKDMs"));
- out (variant::insert_dcpomatic("add-dkdm add DKDM to %1's list"));
+ out (variant::insert_dcpomatic("list-cinemas list known cinemas from %1 settings"));
+ out (variant::insert_dcpomatic("list-dkdm-cpls list CPLs for which %1 has DKDMs"));
+ out (variant::insert_dcpomatic("add-dkdm add DKDM to %1's list"));
+ out (variant::insert_dcpomatic("dump-decryption-certificate write the %1 KDM decryption certificate to the console"));
out (" -h, --help show this help");
out (" -o, --output <path> output file or directory");
out (" -K, --filename-format <format> filename format for KDMs");
@@ -450,6 +451,17 @@ time_from_string(string time)
}
+void
+dump_decryption_certificate(std::function<void (string)> out)
+{
+ vector<string> lines;
+ boost::split(lines, Config::instance()->decryption_chain()->leaf().certificate(true), boost::is_any_of("\n"));
+ for (auto const& line: lines) {
+ out(line);
+ }
+}
+
+
optional<string>
kdm_cli (int argc, char* argv[], std::function<void (string)> out)
try
@@ -595,7 +607,8 @@ try
"create",
"list-cinemas",
"list-dkdm-cpls",
- "add-dkdm"
+ "add-dkdm",
+ "dump-decryption-certificate"
};
if (optind < argc - 1) {
@@ -640,6 +653,11 @@ try
return {};
}
+ if (command == "dump-deccryption-certificate") {
+ dump_decryption_certificate(out);
+ return {};
+ }
+
if (optind >= argc) {
throw KDMCLIError("no film, CPL ID or DKDM specified");
}