* make sure people don't confuse --output with --format

This commit is contained in:
Reinhard Pointner 2013-12-21 06:26:29 +00:00
parent 9e5bdf7773
commit 16facbde0c
2 changed files with 51 additions and 60 deletions

View File

@ -1,7 +1,5 @@
package net.sourceforge.filebot.cli; package net.sourceforge.filebot.cli;
import static java.util.Collections.*; import static java.util.Collections.*;
import static net.sourceforge.tuned.FileUtilities.*; import static net.sourceforge.tuned.FileUtilities.*;
@ -17,170 +15,161 @@ import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.Option; import org.kohsuke.args4j.Option;
import org.kohsuke.args4j.spi.ExplicitBooleanOptionHandler; import org.kohsuke.args4j.spi.ExplicitBooleanOptionHandler;
public class ArgumentBean { public class ArgumentBean {
@Option(name = "-rename", usage = "Rename episode/movie files", metaVar = "fileset") @Option(name = "-rename", usage = "Rename episode/movie files", metaVar = "fileset")
public boolean rename = false; public boolean rename = false;
@Option(name = "--db", usage = "Episode/Movie database", metaVar = "[TVRage, AniDB, TheTVDB] or [OpenSubtitles, IMDb, TheMovieDB]") @Option(name = "--db", usage = "Episode/Movie database", metaVar = "[TVRage, AniDB, TheTVDB] or [OpenSubtitles, IMDb, TheMovieDB]")
public String db; public String db;
@Option(name = "--order", usage = "Episode order", metaVar = "[Airdate, Absolute, DVD]") @Option(name = "--order", usage = "Episode order", metaVar = "[Airdate, Absolute, DVD]")
public String order = "Airdate"; public String order = "Airdate";
@Option(name = "--action", usage = "Rename action", metaVar = "[move, copy, keeplink, symlink, hardlink, test]") @Option(name = "--action", usage = "Rename action", metaVar = "[move, copy, keeplink, symlink, hardlink, test]")
public String action = "move"; public String action = "move";
@Option(name = "--conflict", usage = "Conflict resolution", metaVar = "[override, skip, fail]") @Option(name = "--conflict", usage = "Conflict resolution", metaVar = "[override, skip, fail]")
public String conflict = "skip"; public String conflict = "skip";
@Option(name = "--filter", usage = "Episode filter", metaVar = "expression") @Option(name = "--filter", usage = "Episode filter", metaVar = "expression")
public String filter = null; public String filter = null;
@Option(name = "--format", usage = "Episode/Movie naming scheme", metaVar = "expression") @Option(name = "--format", usage = "Episode/Movie naming scheme", metaVar = "expression")
public String format; public String format;
@Option(name = "-non-strict", usage = "Enable advanced matching and more aggressive guess work") @Option(name = "-non-strict", usage = "Enable advanced matching and more aggressive guess work")
public boolean nonStrict = false; public boolean nonStrict = false;
@Option(name = "-get-subtitles", usage = "Fetch subtitles", metaVar = "fileset") @Option(name = "-get-subtitles", usage = "Fetch subtitles", metaVar = "fileset")
public boolean getSubtitles; public boolean getSubtitles;
@Option(name = "-get-missing-subtitles", usage = "Fetch missing subtitles", metaVar = "fileset") @Option(name = "-get-missing-subtitles", usage = "Fetch missing subtitles", metaVar = "fileset")
public boolean getMissingSubtitles; public boolean getMissingSubtitles;
@Option(name = "--q", usage = "Force lookup query", metaVar = "series/movie title") @Option(name = "--q", usage = "Force lookup query", metaVar = "series/movie title")
public String query; public String query;
@Option(name = "--lang", usage = "Language", metaVar = "2-letter language code") @Option(name = "--lang", usage = "Language", metaVar = "2-letter language code")
public String lang = "en"; public String lang = "en";
@Option(name = "-check", usage = "Create/Check verification file", metaVar = "fileset") @Option(name = "-check", usage = "Create/Check verification file", metaVar = "fileset")
public boolean check; public boolean check;
@Option(name = "--output", usage = "Output path / format", metaVar = "folder/file/format") @Option(name = "--output", usage = "Output path", metaVar = "folder")
public String output; public String output;
@Option(name = "--encoding", usage = "Output character encoding", metaVar = "[UTF-8, windows-1252, GB18030, etc]") @Option(name = "--encoding", usage = "Output character encoding", metaVar = "[UTF-8, windows-1252, GB18030, etc]")
public String encoding; public String encoding;
@Option(name = "-list", usage = "Fetch episode list") @Option(name = "-list", usage = "Fetch episode list")
public boolean list = false; public boolean list = false;
@Option(name = "-mediainfo", usage = "Get media info") @Option(name = "-mediainfo", usage = "Get media info")
public boolean mediaInfo = false; public boolean mediaInfo = false;
@Option(name = "-extract", usage = "Extract archives") @Option(name = "-extract", usage = "Extract archives")
public boolean extract = false; public boolean extract = false;
@Option(name = "-script", usage = "Run Groovy script", metaVar = "path/to/script.groovy") @Option(name = "-script", usage = "Run Groovy script", metaVar = "path/to/script.groovy")
public String script = null; public String script = null;
@Option(name = "-trust-script", usage = "Lift scripting restrictions") @Option(name = "-trust-script", usage = "Lift scripting restrictions")
public boolean trustScript = false; public boolean trustScript = false;
@Option(name = "--log", usage = "Log level", metaVar = "[all, config, info, warning]") @Option(name = "--log", usage = "Log level", metaVar = "[all, config, info, warning]")
public String log = "all"; public String log = "all";
@Option(name = "--log-file", usage = "Log file", metaVar = "path/to/log.txt") @Option(name = "--log-file", usage = "Log file", metaVar = "path/to/log.txt")
public String logFile = null; public String logFile = null;
@Option(name = "--log-lock", usage = "Lock log file", metaVar = "[yes, no]", handler = ExplicitBooleanOptionHandler.class) @Option(name = "--log-lock", usage = "Lock log file", metaVar = "[yes, no]", handler = ExplicitBooleanOptionHandler.class)
public boolean logLock = true; public boolean logLock = true;
@Option(name = "-r", usage = "Resolve folders recursively") @Option(name = "-r", usage = "Resolve folders recursively")
public boolean recursive = false; public boolean recursive = false;
@Option(name = "--mode", usage = "Open GUI with the specified mode only", metaVar = "[rename, sfv, etc]") @Option(name = "--mode", usage = "Open GUI with the specified mode only", metaVar = "[rename, sfv, etc]")
public String mode = null; public String mode = null;
@Option(name = "-clear-cache", usage = "Clear cached and temporary data") @Option(name = "-clear-cache", usage = "Clear cached and temporary data")
public boolean clearCache = false; public boolean clearCache = false;
@Option(name = "-clear-prefs", usage = "Clear application settings") @Option(name = "-clear-prefs", usage = "Clear application settings")
public boolean clearPrefs = false; public boolean clearPrefs = false;
@Option(name = "-unixfs", usage = "Do not strip invalid characters from file paths") @Option(name = "-unixfs", usage = "Do not strip invalid characters from file paths")
public boolean unixfs = false; public boolean unixfs = false;
@Option(name = "-no-xattr", usage = "Disable extended attributes") @Option(name = "-no-xattr", usage = "Disable extended attributes")
public boolean disableExtendedAttributes = false; public boolean disableExtendedAttributes = false;
@Option(name = "-no-analytics", usage = "Disable analytics") @Option(name = "-no-analytics", usage = "Disable analytics")
public boolean disableAnalytics = false; public boolean disableAnalytics = false;
@Option(name = "-version", usage = "Print version identifier") @Option(name = "-version", usage = "Print version identifier")
public boolean version = false; public boolean version = false;
@Option(name = "-help", usage = "Print this help message") @Option(name = "-help", usage = "Print this help message")
public boolean help = false; public boolean help = false;
@Option(name = "--def", usage = "Define script variables", handler = BindingsHandler.class) @Option(name = "--def", usage = "Define script variables", handler = BindingsHandler.class)
public List<Entry<String, String>> bindings; public List<Entry<String, String>> bindings;
@Argument @Argument
public List<String> arguments; public List<String> arguments;
public boolean runCLI() { public boolean runCLI() {
return rename || getSubtitles || getMissingSubtitles || check || list || mediaInfo || extract || script != null; return rename || getSubtitles || getMissingSubtitles || check || list || mediaInfo || extract || script != null;
} }
public boolean printVersion() { public boolean printVersion() {
return version; return version;
} }
public boolean printHelp() { public boolean printHelp() {
return help; return help;
} }
public boolean clearCache() { public boolean clearCache() {
return clearCache; return clearCache;
} }
public boolean clearUserData() { public boolean clearUserData() {
return clearPrefs; return clearPrefs;
} }
public List<File> getFiles(boolean resolveFolders) { public List<File> getFiles(boolean resolveFolders) {
if (arguments == null || arguments.isEmpty()) { if (arguments == null || arguments.isEmpty()) {
return emptyList(); return emptyList();
} }
// resolve given paths // resolve given paths
List<File> files = new ArrayList<File>(); List<File> files = new ArrayList<File>();
for (String argument : arguments) { for (String argument : arguments) {
File file = new File(argument).getAbsoluteFile(); File file = new File(argument).getAbsoluteFile();
// resolve relative paths // resolve relative paths
try { try {
file = file.getCanonicalFile(); file = file.getCanonicalFile();
} catch (Exception e) { } catch (Exception e) {
Logger.getLogger(getClass().getName()).log(Level.WARNING, e.getMessage()); Logger.getLogger(getClass().getName()).log(Level.WARNING, e.getMessage());
} }
// resolve folders // resolve folders
files.addAll(resolveFolders && file.isDirectory() ? listFiles(singleton(file), recursive ? 10 : 0, false) : singleton(file)); files.addAll(resolveFolders && file.isDirectory() ? listFiles(singleton(file), recursive ? 10 : 0, false) : singleton(file));
} }
return files; return files;
} }
public Locale getLocale() { public Locale getLocale() {
return new Locale(lang); return new Locale(lang);
} }
public Level getLogLevel() { public Level getLogLevel() {
return Level.parse(log.toUpperCase()); return Level.parse(log.toUpperCase());
} }
} }

View File

@ -28,6 +28,8 @@
^bad$ ^bad$
^BDMV$ ^BDMV$
^Big$ ^Big$
^clean$
^cleaned$
^Comedy$ ^Comedy$
^Complete$ ^Complete$
^Completed$ ^Completed$