39 lines
1.0 KiB
C#
39 lines
1.0 KiB
C#
using System.IO;
|
|
using System.Text;
|
|
using IniParser;
|
|
using IniParser.Model;
|
|
|
|
namespace Elwig.Helpers {
|
|
public class Config {
|
|
|
|
private readonly string FileName;
|
|
public string DatabaseFile;
|
|
|
|
public Config(string filename) {
|
|
FileName = filename;
|
|
Read();
|
|
}
|
|
|
|
public void Read() {
|
|
var parser = new FileIniDataParser();
|
|
IniData? ini = null;
|
|
try {
|
|
ini = parser.ReadFile(FileName, Encoding.UTF8);
|
|
} catch {}
|
|
|
|
if (ini == null || !ini.TryGetKey("database.file", out string db)) {
|
|
DatabaseFile = App.DataPath + "database.sqlite3";
|
|
} else if (db.Length > 1 && db[1] == ':') {
|
|
DatabaseFile = db;
|
|
} else {
|
|
DatabaseFile = App.DataPath + db;
|
|
}
|
|
}
|
|
|
|
public void Write() {
|
|
using var file = new StreamWriter(FileName, false, Encoding.UTF8);
|
|
file.Write($"\n[database]\nfile = {DatabaseFile}\n");
|
|
}
|
|
}
|
|
}
|