X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2FMain.java;h=a282e7ccef83f7125735bf7bb810cc8e9dad4993;hb=0efd25e3aa839ba82da1054a470c27830b9ed94a;hp=db4316e8c499d22fad8417bddde2fe2cb41f9c9e;hpb=3b2b638f7e1395702f843b5b19d7959327f604b2;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/Main.java b/src/be/nikiroo/fanfix/Main.java index db4316e..a282e7c 100644 --- a/src/be/nikiroo/fanfix/Main.java +++ b/src/be/nikiroo/fanfix/Main.java @@ -15,6 +15,7 @@ import be.nikiroo.fanfix.reader.BasicReader.ReaderType; import be.nikiroo.fanfix.supported.BasicSupport; import be.nikiroo.fanfix.supported.BasicSupport.SupportType; import be.nikiroo.utils.Progress; +import be.nikiroo.utils.Version; import be.nikiroo.utils.ui.UIUtils; /** @@ -24,7 +25,7 @@ import be.nikiroo.utils.ui.UIUtils; */ public class Main { private enum MainAction { - IMPORT, EXPORT, CONVERT, READ, READ_URL, LIST, HELP, SET_READER, START, + IMPORT, EXPORT, CONVERT, READ, READ_URL, LIST, HELP, SET_READER, START, VERSION, } /** @@ -35,8 +36,8 @@ public class Main { *
  • NOUTF: if set to 1 or 'true', the program will prefer non-unicode * {@link String}s when possible
  • *
  • CONFIG_DIR: a path where to look for the .properties files - * before taking the included ones; they will also be saved/updated into - * this path when the program starts
  • + * before taking the usual ones; they will also be saved/updated into this + * path when the program starts *
  • DEBUG: if set to 1 or 'true', the program will override the DEBUG_ERR * configuration value with 'true'
  • * @@ -53,6 +54,7 @@ public class Main { *
  • --list ([type]): list the stories present in the library
  • *
  • --set-reader [reader type]: set the reader type to CLI or LOCAL for * this command
  • + *
  • --version: get the version of the program
  • * * * @param args @@ -159,6 +161,8 @@ public class Main { case START: exitCode = 255; // not supposed to be selected by user break; + case VERSION: + exitCode = 255; // no arguments for this option } } @@ -185,17 +189,38 @@ public class Main { Progress pg = new Progress(); mainProgress.addProgress(pg, mainProgress.getMax()); + VersionCheck updates = VersionCheck.check(); + if (updates.isNewVersionAvailable()) { + // Sent to syserr so not to cause problem if one tries to capture a + // story content in text mode + System.err + .println("A new version of the program is available at https://github.com/nikiroo/fanfix/releases"); + System.err.println(""); + for (Version v : updates.getNewer()) { + System.err.println("\tVersion " + v); + System.err.println("\t-------------"); + System.err.println(""); + for (String item : updates.getChanges().get(v)) { + System.err.println("\t- " + item); + } + System.err.println(""); + } + } + if (exitCode != 255) { switch (action) { case IMPORT: exitCode = imprt(urlString, pg); + updates.ok(); // we consider it read break; case EXPORT: exitCode = export(luid, typeString, target, pg); + updates.ok(); // we consider it read break; case CONVERT: exitCode = convert(urlString, typeString, target, plusInfo == null ? false : plusInfo, pg); + updates.ok(); // we consider it read break; case LIST: exitCode = list(typeString); @@ -212,6 +237,14 @@ public class Main { break; case SET_READER: break; + case VERSION: + System.out + .println(String.format("Fanfix version %s" + + "\nhttps://github.com/nikiroo/fanfix/" + + "\n\tWritten by Nikiroo", + Version.getCurrentVersion())); + updates.ok(); // we consider it read + break; case START: UIUtils.setLookAndFeel(); BasicReader.setDefaultReaderType(ReaderType.LOCAL); @@ -290,7 +323,7 @@ public class Main { * List the stories of the given type from the {@link Library} (unless NULL * is passed, in which case all stories will be listed). * - * @param typeString + * @param type * the type to list the known stories of, or NULL to list all * stories * @@ -456,7 +489,7 @@ public class Main { for (OutputType type : OutputType.values()) { builder.append(trans(StringId.ERR_SYNTAX_TYPE, type.toString(), - type.getDesc())); + type.getDesc(true))); builder.append('\n'); }