From e8f11178ecc1a333976ba713f532fcae11931b16 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sun, 12 Mar 2017 13:19:04 +0100 Subject: Move storage into user directory and fix plugin search path --- libdino/src/application.vala | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'libdino/src/application.vala') diff --git a/libdino/src/application.vala b/libdino/src/application.vala index ad19a976..4b5fd274 100644 --- a/libdino/src/application.vala +++ b/libdino/src/application.vala @@ -8,8 +8,17 @@ public class Dino.Application : Gtk.Application { public StreamInteractor stream_interaction; public Plugins.Registry plugin_registry = new Plugins.Registry(); - public Application() { - this.db = new Database("store.sqlite3"); + public Application() throws Error { + if (DirUtils.create_with_parents(get_storage_dir(), 0700) == -1) { + throw new Error(-1, 0, @"Could not create storage dir \"$(get_storage_dir())\": $(FileUtils.error_from_errno(errno))"); + } + + // FIXME: Legacy import + if (FileUtils.test("store.sqlite3", FileTest.IS_REGULAR)) { + FileUtils.rename("store.sqlite3", Path.build_filename(get_storage_dir(), "dino.db")); + } + + this.db = new Database(Path.build_filename(get_storage_dir(), "dino.db")); this.stream_interaction = new StreamInteractor(db); AvatarManager.start(stream_interaction, db); @@ -21,5 +30,9 @@ public class Dino.Application : Gtk.Application { ConversationManager.start(stream_interaction, db); ChatInteraction.start(stream_interaction); } + + public static string get_storage_dir() { + return Path.build_filename(Environment.get_user_data_dir(), "dino"); + } } -- cgit v1.2.3-70-g09d2