Small fixes
[fanfix.git] / src / be / nikiroo / fanfix / Instance.java
index 4e4705b352a5aa569cd958b4fc1244b004c1a227..9c20682fd8d6798da64eea8406ddfc86fa1c9dee 100644 (file)
@@ -6,6 +6,7 @@ import java.io.IOException;
 import be.nikiroo.fanfix.bundles.Config;
 import be.nikiroo.fanfix.bundles.ConfigBundle;
 import be.nikiroo.fanfix.bundles.StringIdBundle;
+import be.nikiroo.fanfix.output.BasicOutput.OutputType;
 import be.nikiroo.utils.resources.Bundles;
 
 /**
@@ -23,11 +24,46 @@ public class Instance {
        private static File readerTmp;
 
        static {
-               // Most of the rest is dependant upon this:
+               // Most of the rest is dependent upon this:
                config = new ConfigBundle();
 
+               String configDir = System.getenv("CONFIG_DIR");
+               if (configDir == null) {
+                       configDir = new File(System.getProperty("user.home"), ".fanfix")
+                                       .getPath();
+               }
+               if (configDir != null) {
+                       if (!new File(configDir).exists()) {
+                               new File(configDir).mkdirs();
+                       } else {
+                               Bundles.setDirectory(configDir);
+                       }
+
+                       try {
+                               config = new ConfigBundle();
+                               config.updateFile(configDir);
+                       } catch (IOException e) {
+                               syserr(e);
+                       }
+                       try {
+                               trans = new StringIdBundle(getLang());
+                               trans.updateFile(configDir);
+                       } catch (IOException e) {
+                               syserr(e);
+                       }
+
+                       Bundles.setDirectory(configDir);
+               }
+
                trans = new StringIdBundle(getLang());
-               lib = new Library(getFile(Config.LIBRARY_DIR));
+               try {
+                       lib = new Library(getFile(Config.LIBRARY_DIR),
+                                       OutputType.INFO_TEXT, OutputType.CBZ);
+               } catch (Exception e) {
+                       syserr(new IOException("Cannot create library for directory: "
+                                       + getFile(Config.LIBRARY_DIR), e));
+               }
+
                debug = Instance.getConfig().getBoolean(Config.DEBUG_ERR, false);
                coverDir = getFile(Config.DEFAULT_COVERS_DIR);
                File tmp = getFile(Config.CACHE_DIR);
@@ -48,7 +84,7 @@ public class Instance {
                                        tmp = new File(tmpDir, "fanfic-tmp");
                                }
                                if (readerTmp == null) {
-                                       tmp = new File(tmpDir, "fanfic-reader");
+                                       readerTmp = new File(tmpDir, "fanfic-reader");
                                }
                        } else {
                                syserr(new IOException(
@@ -63,28 +99,6 @@ public class Instance {
                        coverDir = null;
                }
 
-               String configDir = System.getenv("CONFIG_DIR");
-               if (configDir != null) {
-                       if (new File(configDir).isDirectory()) {
-                               Bundles.setDirectory(configDir);
-                               try {
-                                       config = new ConfigBundle();
-                                       config.updateFile(configDir);
-                               } catch (IOException e) {
-                                       syserr(e);
-                               }
-                               try {
-                                       trans = new StringIdBundle(getLang());
-                                       trans.updateFile(configDir);
-                               } catch (IOException e) {
-                                       syserr(e);
-                               }
-                       } else {
-                               syserr(new IOException("Configuration directory not found: "
-                                               + configDir));
-                       }
-               }
-
                try {
                        String ua = config.getString(Config.USER_AGENT);
                        int hours = config.getInteger(Config.CACHE_MAX_TIME_CHANGING, -1);