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)",
|
"WeasyPrint version could not be determined ({} --version)",
|
||||||
command));
|
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) {
|
private boolean isWeasyprint(String command) {
|
||||||
@ -155,6 +180,10 @@ public class ExternalAppDepConfig {
|
|||||||
|| command.toLowerCase(Locale.ROOT).contains("weasyprint");
|
|| command.toLowerCase(Locale.ROOT).contains("weasyprint");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isQpdf(String command) {
|
||||||
|
return command.toLowerCase(Locale.ROOT).contains("qpdf");
|
||||||
|
}
|
||||||
|
|
||||||
private List<String> getAffectedFeatures(String group) {
|
private List<String> getAffectedFeatures(String group) {
|
||||||
List<String> endpoints = new ArrayList<>(endpointConfiguration.getEndpointsForGroup(group));
|
List<String> endpoints = new ArrayList<>(endpointConfiguration.getEndpointsForGroup(group));
|
||||||
return endpoints.stream().map(this::formatEndpointAsFeature).toList();
|
return endpoints.stream().map(this::formatEndpointAsFeature).toList();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user