Version 1.5.1: FimFiction 4, small fix on eHentai
[fanfix.git] / src / be / nikiroo / fanfix / Main.java
index b989c68a1a3b648f4f96c47398b602ebd6e2814d..85d74928458e1589926bd0e0ab0f8d34be725c78 100644 (file)
@@ -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,
        }
 
        /**
@@ -53,6 +54,7 @@ public class Main {
         * <li>--list ([type]): list the stories present in the library</li>
         * <li>--set-reader [reader type]: set the reader type to CLI or LOCAL for
         * this command</li>
+        * <li>--version: get the version of the program</li>
         * </ul>
         * 
         * @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);