aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoris2022-02-26 22:42:25 +0100
committerJoris2022-02-26 22:42:25 +0100
commit68285db2c187b350bb2b1707071382bd9fbaa2a5 (patch)
treebe382be54bbaffd618af639728939cb88ed8e052 /src
parentf9f49285c5ecc76d3edfb0a54ffab53c2e296d7f (diff)
downloadcalendar-68285db2c187b350bb2b1707071382bd9fbaa2a5.tar.gz
calendar-68285db2c187b350bb2b1707071382bd9fbaa2a5.tar.bz2
calendar-68285db2c187b350bb2b1707071382bd9fbaa2a5.zip
Give database path from argument
Diffstat (limited to 'src')
-rw-r--r--src/db/mod.rs4
-rw-r--r--src/gui/mod.rs3
-rw-r--r--src/main.rs11
3 files changed, 14 insertions, 4 deletions
diff --git a/src/db/mod.rs b/src/db/mod.rs
index b27226b..1bbf21e 100644
--- a/src/db/mod.rs
+++ b/src/db/mod.rs
@@ -6,8 +6,8 @@ use uuid::Uuid;
use crate::model::event::Event;
-pub fn init() -> Result<Connection> {
- let mut conn = Connection::open("database.db")?;
+pub fn init(db_path: &str) -> Result<Connection> {
+ let mut conn = Connection::open(db_path)?;
let migrations = Migrations::new(vec![M::up(include_str!("migrations/1-init.sql"))]);
migrations.to_latest(&mut conn)?;
Ok(conn)
diff --git a/src/gui/mod.rs b/src/gui/mod.rs
index a8a025c..c33500b 100644
--- a/src/gui/mod.rs
+++ b/src/gui/mod.rs
@@ -18,7 +18,8 @@ pub fn run(conn: Connection) {
let app = gtk::Application::new(Some("me.guyonvarch.calendar"), Default::default());
app.connect_startup(|_| load_style());
app.connect_activate(move |app| build_ui(conn.clone(), app));
- app.run();
+ let args: [&str; 0] = [];
+ app.run_with_args(&args);
}
fn build_ui(conn: Rc<Connection>, app: &gtk::Application) {
diff --git a/src/main.rs b/src/main.rs
index 8999a52..956e930 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -3,9 +3,18 @@ mod gui;
mod model;
use anyhow::Result;
+use structopt::StructOpt;
+
+#[derive(StructOpt)]
+#[structopt()]
+struct Opt {
+ #[structopt(long, default_value = "database.db")]
+ database: String,
+}
fn main() -> Result<()> {
- let conn = db::init()?;
+ let db_path = Opt::from_args().database;
+ let conn = db::init(&db_path)?;
gui::run(conn);
Ok(())
}