summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2014-09-11 14:59:14 +0200
committerJonathan Bauer2014-09-11 14:59:14 +0200
commit6c82d23f7c123c3891e5a972fb9bda93cb68ead2 (patch)
treef583752697113ba03e5f254effe28fab8d70d812
parentMerge branch 'maven' of git.openslx.org:openslx-ng/tutor-module into maven (diff)
downloadtutor-module-6c82d23f7c123c3891e5a972fb9bda93cb68ead2.tar.gz
tutor-module-6c82d23f7c123c3891e5a972fb9bda93cb68ead2.tar.xz
tutor-module-6c82d23f7c123c3891e5a972fb9bda93cb68ead2.zip
OS dependent path for config file
-rw-r--r--Dozentenmodul/src/main/java/config/config_file.java68
1 files changed, 52 insertions, 16 deletions
diff --git a/Dozentenmodul/src/main/java/config/config_file.java b/Dozentenmodul/src/main/java/config/config_file.java
index e2290f34..754e67a9 100644
--- a/Dozentenmodul/src/main/java/config/config_file.java
+++ b/Dozentenmodul/src/main/java/config/config_file.java
@@ -4,36 +4,73 @@ import java.io.File;
import java.io.IOException;
import org.ini4j.Wini;
+
public class config_file {
+
+ private String configPath = null;
public boolean createConfig() throws IOException{
+ // Unterscheide zwischen Windows/Unix
+ String OSName = System.getProperty("os.name").toLowerCase();
+ System.out.println("Machine's OS: " + OSName);
+ if (OSName.contains("windows"))
+ {
+ // Windows machine. Use the environment variable 'APPDATA' which
+ // should point to a path similar to:
+ // C:\Users\<user>\AppData\Roaming
+ String appDataPath = System.getenv("APPDATA");
+ if (!appDataPath.isEmpty())
+ {
+ System.out.println("APPDATA: " + appDataPath);
+ configPath = appDataPath + "\\bwSuite\\config.ini";
+ }
+ else
+ {
+ // APPDATA was empty, let's build it ourselves...
+ System.out.println("APPDATA ist leer.");
+ configPath = System.getProperty("user.home") + "\\AppData\\Roaming\\bwSuite\\config.ini"
+
+ }
+
+ }
+ else if (OSName.contains("linux"))
+ {
+ configPath=System.getProperty("user.home") + "/.config/bwSuite/config.ini";
+
+ }
- String config_file="C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Roaming\\bwLehrpoolSuite";
+ if (configPath == null)
+ {
+ System.out.println("Config file path could not be determined.");
+ }
+ //config_file="C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Roaming\\bwLehrpoolSuite";
//File fuer den Ordner erzeugen
- File config=new File(config_file);
- String file=config_file+"\\config.ini";
- //ini File erzeugen
- File conf=new File(file);
+ File configFile=new File(configPath);
Wini ini;
//Pruefen ob Ordner schon existiert
- if(config.exists()==false)
+ if(!configFile.exists())
{
System.out.println("Ordner \"bwLehrpoolSuite\" exisitiert nicht - lege ihn jetzt an.");
//Wenn nicht erzeuge Ordner
- config.mkdir();
+ if (!configFile.getParentFile().mkdirs())
+ {
+ System.out.print("Konnte Verzeichnisstruktur nicht erstellen: " + configFile.getParentFile());
+ System.out.println(" - keine weitere Aktion");
+ // jetzt nichts mehr
+ }
//Erzeuge eine neue Datei
- conf.createNewFile();
- ini=new Wini(conf);
+ configFile.createNewFile();
+ ini=new Wini(configFile);
//Wenn in die Datei geschrieben werden kann
- if(conf.canWrite()==true)
+ if(configFile.canWrite()==true)
{
System.out.println("Erzeuge \"config.ini.\"");
//Schreibe Config
- ini.put("main", "BillOfRights",false);
+ ini.put("main", "BillOfRights", false);
ini.put("main", "vmware", false);
ini.put("main", "Benutzername speichern", false);
ini.put("main", "Benutzername", "");
@@ -51,14 +88,14 @@ public class config_file {
{
System.out.println("Ordner \"bwLehrpoolSuite\" existiert bereits - keine weitere Aktion.");
//Wenn Ordner schon existiert, pruefe ob Datei existiert
- if(conf.exists()==false)
+ if(!configFile.exists())
{
System.out.println("\"config.ini\" existiert nicht - lege jetzt an.");
//Wenn nicht, erzeuge diese
- conf.createNewFile();
- ini=new Wini(conf);
+ configFile.createNewFile();
+ ini=new Wini(configFile);
- if(conf.canWrite()==true)
+ if(configFile.canWrite()==true)
{
System.out.println("Schreibe jetzt \"config.ini\".");
//Schreibe Konfig in File
@@ -81,5 +118,4 @@ public class config_file {
return true;
}
-
}