Init sqlite database on config creation

This commit is contained in:
oupson 2023-02-27 11:58:55 +01:00
parent 6d9daca0fc
commit 87b464b53c
Signed by: oupson
GPG Key ID: 3BD88615552EFCB7
3 changed files with 22 additions and 14 deletions

View File

@ -12,8 +12,8 @@ footerm_deps = [
dependency('gtk4'), dependency('gtk4'),
dependency('libadwaita-1'), dependency('libadwaita-1'),
dependency('vte-2.91-gtk4', version: '>= 0.70.0'), dependency('vte-2.91-gtk4', version: '>= 0.70.0'),
dependency('json-glib-1.0', version: '>= 1.2.0'),
dependency('libssh2'), dependency('libssh2'),
dependency('sqlite3')
] ]
subdir('model') subdir('model')

View File

@ -51,18 +51,7 @@ namespace Footerm {
}); });
try { try {
var config_dir = GLib.File.new_for_path(GLib.Environment.get_user_config_dir()); var config = Footerm.Services.Config.get_instance();
var server_files = config_dir.get_child("servers.json");
if (server_files.query_exists()) {
var parser = new Json.Parser();
parser.load_from_file(server_files.get_path());
// TODO
} else {
GLib.debug("Server file does not exist");
}
} catch (Error e) { } catch (Error e) {
GLib.warning("Failed to read server list : %s", e.message); GLib.warning("Failed to read server list : %s", e.message);
} }

View File

@ -19,14 +19,33 @@
*/ */
namespace Footerm.Services { namespace Footerm.Services {
public errordomain ConfigError {
DATABASE
}
public class Config { public class Config {
private static Config instance = null; private static Config instance = null;
public static Config get_instance() { public static Config get_instance() throws Footerm.Services.ConfigError {
if (Config.instance == null) { if (Config.instance == null) {
Config.instance = new Config(); Config.instance = new Config();
} }
return Config.instance; return Config.instance;
} }
private Sqlite.Database db;
public Config() throws Footerm.Services.ConfigError {
var config_dir = GLib.File.new_for_path(GLib.Environment.get_user_config_dir());
var config_db_file = config_dir.get_child("config.db");
debug("Database path is %s", config_db_file.get_path());
int ec = Sqlite.Database.open (config_db_file.get_path(), out this.db);
if (ec != Sqlite.OK) {
throw new ConfigError.DATABASE(@"Can't open database: $(db.errcode ()): $(db.errmsg ())");
}
debug("Opened database");
}
} }
} }