2023-11-17 07:38:56 +00:00
|
|
|
use flowy_core::config::AppFlowyCoreConfig;
|
|
|
|
use flowy_core::{AppFlowyCore, DEFAULT_NAME};
|
2024-02-03 21:50:23 +00:00
|
|
|
use lib_dispatch::runtime::AFPluginRuntime;
|
|
|
|
use std::sync::Arc;
|
2023-01-17 08:27:17 +00:00
|
|
|
|
2024-03-15 12:29:00 +00:00
|
|
|
use dotenv::dotenv;
|
|
|
|
|
|
|
|
pub fn read_env() {
|
|
|
|
dotenv().ok();
|
|
|
|
|
|
|
|
let env = if cfg!(debug_assertions) {
|
2024-04-07 13:36:55 +00:00
|
|
|
include_str!("../env.development")
|
2024-03-15 12:29:00 +00:00
|
|
|
} else {
|
2024-04-07 13:36:55 +00:00
|
|
|
include_str!("../env.production")
|
2024-03-15 12:29:00 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
for line in env.lines() {
|
2024-04-07 13:36:55 +00:00
|
|
|
if let Some((key, value)) = line.split_once('=') {
|
|
|
|
// Check if the environment variable is not already set in the system
|
|
|
|
let current_value = std::env::var(key).unwrap_or_default();
|
|
|
|
if current_value.is_empty() {
|
|
|
|
std::env::set_var(key, value);
|
2024-03-15 12:29:00 +00:00
|
|
|
}
|
2024-04-07 13:36:55 +00:00
|
|
|
}
|
2024-03-15 12:29:00 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-02-02 15:02:49 +00:00
|
|
|
pub fn init_flowy_core() -> AppFlowyCore {
|
2023-03-13 08:42:45 +00:00
|
|
|
let config_json = include_str!("../tauri.conf.json");
|
|
|
|
let config: tauri_utils::config::Config = serde_json::from_str(config_json).unwrap();
|
Feat/appflowy tauri 2 (#1902)
* chore: rename classes to models
* refactor: add effects and reducers folder
* chore: update user data storage path
* chore: subscribe callback
* chore: nav items persist, board layout (#1879)
* chore: load workspace items, load folders and pages from workspace, load raw document data, load raw grid data
* chore: clear folders and pages before load, new folder event
* chore: update folder name backend call
* chore: folder expand animation
* chore: hide arrow on empty folder
* chore: Board page layout, board store, board sample data
* chore: board block item
* chore: test db id
* chore: persist new page, persist page rename, create workspace on read error
* chore: boardblockitem details btn
* chore: boardblockitem multiselect data and colors
* chore: board item drag
* chore: drag start on move
* chore: remove databaseId
* chore: remove databaseId
* chore: import service classes into auth hook
* chore: sign out option
* chore: login page event
* chore: signup event
* chore: make workspace hook to use service
* chore: page and folder hooks use backend services
* chore: new folder use backend service
* chore: error handler page
* chore: try catch hooks to show error page
* chore: install i18n package and use flutters i18n files
* fix: signin signup margin
* chore: fix compile errors
* chore: remove unused codes
* chore: open workspace after user register
* chore: open workspace after user register
* chore: add create grid demo
* chore: load the cell data
* chore: print the cell data
* chore: fix project errors
* fix: tauri UI issues (#1899)
* chore: load workspace items, load folders and pages from workspace, load raw document data, load raw grid data
* chore: clear folders and pages before load, new folder event
* chore: update folder name backend call
* chore: folder expand animation
* chore: hide arrow on empty folder
* chore: Board page layout, board store, board sample data
* chore: board block item
* chore: test db id
* chore: persist new page, persist page rename, create workspace on read error
* chore: boardblockitem details btn
* chore: boardblockitem multiselect data and colors
* chore: board item drag
* chore: drag start on move
* chore: remove databaseId
* chore: remove databaseId
* chore: import service classes into auth hook
* chore: sign out option
* chore: login page event
* chore: signup event
* chore: make workspace hook to use service
* chore: page and folder hooks use backend services
* chore: new folder use backend service
* chore: error handler page
* chore: try catch hooks to show error page
* chore: install i18n package and use flutters i18n files
* fix: signin signup margin
* fix: new page overflow with folder
* fix: sign out button
* fix: sign out icon
* chore: floating navigation panel
* refactor: notify with error
* chore: config window size
* fix: test demo error
* chore: update tests
---------
Co-authored-by: Askarbek Zadauly <ascarbek@gmail.com>
2023-02-28 14:42:41 +00:00
|
|
|
|
2024-04-07 13:36:55 +00:00
|
|
|
let app_version = config
|
|
|
|
.package
|
|
|
|
.version
|
|
|
|
.clone()
|
|
|
|
.map(|v| v.to_string())
|
2024-05-22 06:24:11 +00:00
|
|
|
.unwrap_or_else(|| "0.5.8".to_string());
|
|
|
|
let app_version = semver::Version::parse(&app_version).unwrap_or_else(|_| semver::Version::new(0, 5, 8));
|
2023-03-13 08:42:45 +00:00
|
|
|
let mut data_path = tauri::api::path::app_local_data_dir(&config).unwrap();
|
|
|
|
if cfg!(debug_assertions) {
|
2023-11-20 12:54:47 +00:00
|
|
|
data_path.push("data_dev");
|
|
|
|
} else {
|
|
|
|
data_path.push("data");
|
2023-03-13 08:42:45 +00:00
|
|
|
}
|
2023-11-20 12:54:47 +00:00
|
|
|
|
|
|
|
let custom_application_path = data_path.to_str().unwrap().to_string();
|
|
|
|
let application_path = data_path.to_str().unwrap().to_string();
|
|
|
|
let device_id = uuid::Uuid::new_v4().to_string();
|
Feat/appflowy tauri 2 (#1902)
* chore: rename classes to models
* refactor: add effects and reducers folder
* chore: update user data storage path
* chore: subscribe callback
* chore: nav items persist, board layout (#1879)
* chore: load workspace items, load folders and pages from workspace, load raw document data, load raw grid data
* chore: clear folders and pages before load, new folder event
* chore: update folder name backend call
* chore: folder expand animation
* chore: hide arrow on empty folder
* chore: Board page layout, board store, board sample data
* chore: board block item
* chore: test db id
* chore: persist new page, persist page rename, create workspace on read error
* chore: boardblockitem details btn
* chore: boardblockitem multiselect data and colors
* chore: board item drag
* chore: drag start on move
* chore: remove databaseId
* chore: remove databaseId
* chore: import service classes into auth hook
* chore: sign out option
* chore: login page event
* chore: signup event
* chore: make workspace hook to use service
* chore: page and folder hooks use backend services
* chore: new folder use backend service
* chore: error handler page
* chore: try catch hooks to show error page
* chore: install i18n package and use flutters i18n files
* fix: signin signup margin
* chore: fix compile errors
* chore: remove unused codes
* chore: open workspace after user register
* chore: open workspace after user register
* chore: add create grid demo
* chore: load the cell data
* chore: print the cell data
* chore: fix project errors
* fix: tauri UI issues (#1899)
* chore: load workspace items, load folders and pages from workspace, load raw document data, load raw grid data
* chore: clear folders and pages before load, new folder event
* chore: update folder name backend call
* chore: folder expand animation
* chore: hide arrow on empty folder
* chore: Board page layout, board store, board sample data
* chore: board block item
* chore: test db id
* chore: persist new page, persist page rename, create workspace on read error
* chore: boardblockitem details btn
* chore: boardblockitem multiselect data and colors
* chore: board item drag
* chore: drag start on move
* chore: remove databaseId
* chore: remove databaseId
* chore: import service classes into auth hook
* chore: sign out option
* chore: login page event
* chore: signup event
* chore: make workspace hook to use service
* chore: page and folder hooks use backend services
* chore: new folder use backend service
* chore: error handler page
* chore: try catch hooks to show error page
* chore: install i18n package and use flutters i18n files
* fix: signin signup margin
* fix: new page overflow with folder
* fix: sign out button
* fix: sign out icon
* chore: floating navigation panel
* refactor: notify with error
* chore: config window size
* fix: test demo error
* chore: update tests
---------
Co-authored-by: Askarbek Zadauly <ascarbek@gmail.com>
2023-02-28 14:42:41 +00:00
|
|
|
|
2024-03-15 12:29:00 +00:00
|
|
|
read_env();
|
2023-04-03 01:26:12 +00:00
|
|
|
std::env::set_var("RUST_LOG", "trace");
|
2024-03-15 12:29:00 +00:00
|
|
|
|
2023-11-20 12:54:47 +00:00
|
|
|
let config = AppFlowyCoreConfig::new(
|
2024-03-15 12:29:00 +00:00
|
|
|
app_version,
|
2023-11-20 12:54:47 +00:00
|
|
|
custom_application_path,
|
|
|
|
application_path,
|
|
|
|
device_id,
|
2024-04-07 13:36:55 +00:00
|
|
|
"tauri".to_string(),
|
2023-11-20 12:54:47 +00:00
|
|
|
DEFAULT_NAME.to_string(),
|
|
|
|
)
|
2024-03-22 07:15:38 +00:00
|
|
|
.log_filter("trace", vec!["appflowy_tauri".to_string()]);
|
2024-02-03 21:50:23 +00:00
|
|
|
|
|
|
|
let runtime = Arc::new(AFPluginRuntime::new().unwrap());
|
|
|
|
let cloned_runtime = runtime.clone();
|
2024-04-08 04:11:58 +00:00
|
|
|
runtime.block_on(async move { AppFlowyCore::new(config, cloned_runtime, None).await })
|
2023-01-17 08:27:17 +00:00
|
|
|
}
|