blob: a34a00036080752779c93e82a94dbe122e7e5bd2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
use asset_system::rw::RWData;
use constants::workspace::{dirs::workspace_dir_workspace, files::workspace_file_config};
use framework::{space::SpaceRoot, space_macro::SpaceRootTest};
use tokio::fs::create_dir_all;
use crate::workspace::config::WorkspaceConfig;
pub mod config;
pub mod error;
pub mod manager;
#[derive(Default, SpaceRootTest)]
pub struct Workspace;
impl SpaceRoot for Workspace {
fn get_pattern() -> framework::space::SpaceRootFindPattern {
framework::space::SpaceRootFindPattern::IncludeDotDir(workspace_dir_workspace().into())
}
async fn create_space(
path: &std::path::Path,
) -> Result<(), framework::space::error::SpaceError> {
let workspace_root = path.join(workspace_dir_workspace());
let workspace_toml = path.join(workspace_file_config());
// Create workspace directory
create_dir_all(workspace_root)
.await
.map_err(framework::space::error::SpaceError::from)?;
// Create configuration file
WorkspaceConfig::write(WorkspaceConfig::default(), &workspace_toml)
.await
.map_err(|e| framework::space::error::SpaceError::Other(e.to_string()))?;
Ok(())
}
}
|