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;
/**
private static Library lib;
private static boolean debug;
private static File coverDir;
+ private static File readerTmp;
static {
+ // Most of the rest is dependent upon this:
config = new ConfigBundle();
- // config dependent:
+ 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);
+ readerTmp = getFile(Config.CACHE_DIR_LOCAL_READER);
- if (coverDir != null && !coverDir.exists()) {
- syserr(new IOException(
- "The 'default covers' directory does not exists: "
- + coverDir));
- coverDir = null;
+ if (checkEnv("NOUTF")) {
+ trans.setUnicode(false);
}
- //
-
- String noutf = System.getenv("NOUTF");
- if (noutf != null) {
- noutf = noutf.trim().toLowerCase();
- if ("yes".equals(noutf) || "true".equals(noutf)
- || "on".equals(noutf) || "1".equals(noutf)
- || "y".equals(noutf)) {
- trans.setUnicode(false);
- }
+
+ if (checkEnv("DEBUG")) {
+ debug = true;
}
- 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);
+ if (tmp == null || readerTmp == null) {
+ String tmpDir = System.getProperty("java.io.tmpdir");
+ if (tmpDir != null) {
+ if (tmp == null) {
+ tmp = new File(tmpDir, "fanfic-tmp");
}
- try {
- trans = new StringIdBundle(getLang());
- trans.updateFile(configDir);
- } catch (IOException e) {
- syserr(e);
+ if (readerTmp == null) {
+ readerTmp = new File(tmpDir, "fanfic-reader");
}
} else {
- syserr(new IOException("Configuration directory not found: "
- + configDir));
+ syserr(new IOException(
+ "The system does not have a default temporary directory"));
}
}
+ if (coverDir != null && !coverDir.exists()) {
+ syserr(new IOException(
+ "The 'default covers' directory does not exists: "
+ + coverDir));
+ coverDir = null;
+ }
+
try {
- File tmp = getFile(Config.CACHE_DIR);
String ua = config.getString(Config.USER_AGENT);
int hours = config.getInteger(Config.CACHE_MAX_TIME_CHANGING, -1);
int hoursLarge = config
.getInteger(Config.CACHE_MAX_TIME_STABLE, -1);
- if (tmp == null) {
- String tmpDir = System.getProperty("java.io.tmpdir");
- if (tmpDir != null) {
- tmp = new File(tmpDir, "fanfic-tmp");
- } else {
- syserr(new IOException(
- "The system does not have a default temporary directory"));
- }
- }
-
cache = new Cache(tmp, ua, hours, hoursLarge);
} catch (IOException e) {
syserr(new IOException(
return coverDir;
}
+ /**
+ * Return the directory where to store temporary files for the local reader.
+ *
+ * @return the directory
+ */
+ public static File getReaderDir() {
+ return readerTmp;
+ }
+
/**
* Report an error to the user
*
return lang;
}
+
+ /**
+ * Check that the given environment variable is "enabled".
+ *
+ * @param key
+ * the variable to check
+ *
+ * @return TRUE if it is
+ */
+ private static boolean checkEnv(String key) {
+ String value = System.getenv(key);
+ if (value != null) {
+ value = value.trim().toLowerCase();
+ if ("yes".equals(value) || "true".equals(value)
+ || "on".equals(value) || "1".equals(value)
+ || "y".equals(value)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
}