Rework app to use picocli

This commit is contained in:
RatzzFatzz
2024-11-17 23:42:06 +01:00
parent ed8e592963
commit 321115b9ca
21 changed files with 128 additions and 125 deletions

View File

@@ -1,21 +1,34 @@
package at.pcgamingfreaks.mkvaudiosubtitlechanger;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.config.Config;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.config.ConfigLoader;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.CachedMkvFileProcessor;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.kernel.AttributeUpdaterKernel;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.kernel.CoherentAttributeUpdaterKernel;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.kernel.DefaultAttributeUpdaterKernel;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.MkvFileCollector;
import at.pcgamingfreaks.mkvaudiosubtitlechanger.util.ProjectUtil;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import picocli.CommandLine;
@Slf4j
public class Main {
public static void main(String[] args) {
ConfigLoader.initConfig(args);
@CommandLine.Command(mixinStandardHelpOptions = true, versionProvider = ProjectUtil.class)
public class Main implements Runnable {
@Getter
@CommandLine.ArgGroup(exclusive = false)
private Config config = Config.getInstance();
@Override
public void run() {
Config.setInstance(config);
AttributeUpdaterKernel kernel = Config.getInstance().getCoherent() != null
? new CoherentAttributeUpdaterKernel(new MkvFileCollector(), new CachedMkvFileProcessor())
: new DefaultAttributeUpdaterKernel(new MkvFileCollector(), new CachedMkvFileProcessor());
kernel.execute();
}
public static void main(String[] args) {
new CommandLine(Main.class).execute(args);
}
}