mirror of
https://github.com/RatzzFatzz/MKVAudioSubtitleChanger.git
synced 2026-02-11 10:05:58 +01:00
Add mkvmerge and mkvpropedit version
This commit is contained in:
@@ -1,9 +1,13 @@
|
|||||||
package at.pcgamingfreaks.mkvaudiosubtitlechanger.util;
|
package at.pcgamingfreaks.mkvaudiosubtitlechanger.util;
|
||||||
|
|
||||||
|
import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.MkvToolNix;
|
||||||
|
import org.apache.logging.log4j.util.Strings;
|
||||||
import picocli.CommandLine;
|
import picocli.CommandLine;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
public class ProjectUtil implements CommandLine.IVersionProvider {
|
public class ProjectUtil implements CommandLine.IVersionProvider {
|
||||||
@@ -18,15 +22,32 @@ public class ProjectUtil implements CommandLine.IVersionProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: add mkvmerge and mkvpropedit version
|
// TODO: add mkvmerge and mkvpropedit version
|
||||||
public String[] getVersion() {
|
public String[] getVersion() throws IOException {
|
||||||
|
String mkvpropeeditVersion = getVersion(MkvToolNix.MKV_PROP_EDIT);
|
||||||
|
String mkvmergeVersion = getVersion(MkvToolNix.MKV_MERGE);
|
||||||
|
|
||||||
return new String[] {
|
return new String[] {
|
||||||
getProjectName() + " " + PROJECT_PROPERTIES.getProperty("version"),
|
getProjectName() + " " + PROJECT_PROPERTIES.getProperty("version"),
|
||||||
"Java ${java.version} (${java.vendor} ${java.vm.name} ${java.vm.version})",
|
"Java ${java.version} (${java.vendor} ${java.vm.name} ${java.vm.version})",
|
||||||
"${os.name} ${os.version} ${os.arch}"
|
"${os.name} ${os.version} ${os.arch}",
|
||||||
|
(!Strings.isBlank(mkvpropeeditVersion) ? mkvpropeeditVersion : "MkvPropEdit not found") + ", " + (!Strings.isBlank(mkvmergeVersion) ? mkvmergeVersion : "MkvMerge not found")
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getProjectName() {
|
public static String getProjectName() {
|
||||||
return PROJECT_PROPERTIES.getProperty("project_name");
|
return PROJECT_PROPERTIES.getProperty("project_name");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getVersion(MkvToolNix app) throws IOException {
|
||||||
|
ProcessBuilder processBuilder = new ProcessBuilder(app.toString(), "--version");
|
||||||
|
Process process = processBuilder.start();
|
||||||
|
|
||||||
|
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
|
||||||
|
String version = reader.readLine();
|
||||||
|
int exitCode = process.waitFor();
|
||||||
|
|
||||||
|
if (exitCode == 0) return version;
|
||||||
|
} catch (IOException | InterruptedException ignored) {}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user