mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-11-16 01:21:16 +01:00
Merge 1751aaa23d into be824b126f
This commit is contained in:
commit
54fcbe58f5
@ -148,6 +148,31 @@ public class ExternalAppDepConfig {
|
||||
"WeasyPrint version could not be determined ({} --version)",
|
||||
command));
|
||||
}
|
||||
|
||||
// Extra: enforce minimum qpdf version if command matches
|
||||
if (isQpdf(command)) {
|
||||
Optional<String> version = getVersionSafe(command, "--version");
|
||||
version.ifPresentOrElse(
|
||||
v -> {
|
||||
Version installed = new Version(v);
|
||||
Version required = new Version("12.0.0");
|
||||
if (installed.compareTo(required) < 0) {
|
||||
List<String> affectedGroups =
|
||||
commandToGroupMapping.getOrDefault(command, List.of("qpdf"));
|
||||
for (String group : affectedGroups) {
|
||||
endpointConfiguration.disableGroup(group);
|
||||
}
|
||||
log.warn(
|
||||
"qpdf version {} is below required {} - disabling group(s): {}",
|
||||
installed,
|
||||
required,
|
||||
String.join(", ", affectedGroups));
|
||||
} else {
|
||||
log.info("qpdf {} meets minimum {}", installed, required);
|
||||
}
|
||||
},
|
||||
() -> log.warn("qpdf version could not be determined ({} --version)", command));
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isWeasyprint(String command) {
|
||||
@ -155,6 +180,10 @@ public class ExternalAppDepConfig {
|
||||
|| command.toLowerCase(Locale.ROOT).contains("weasyprint");
|
||||
}
|
||||
|
||||
private boolean isQpdf(String command) {
|
||||
return command.toLowerCase(Locale.ROOT).contains("qpdf");
|
||||
}
|
||||
|
||||
private List<String> getAffectedFeatures(String group) {
|
||||
List<String> endpoints = new ArrayList<>(endpointConfiguration.getEndpointsForGroup(group));
|
||||
return endpoints.stream().map(this::formatEndpointAsFeature).toList();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user