1use std::path::PathBuf;
4
5use crate::{Context, DsError, Result, config::SpaceTreeId};
6
7pub fn command(
8 ctx: &mut Context,
9 space_name: String,
10 wdir: Option<PathBuf>,
11 tree: Option<SpaceTreeId>,
12) -> Result {
13 let space = ctx.db.get_space_mut(&space_name)?;
14 let old_space = space.clone();
15
16 if let Some(wdir) = wdir {
17 if !wdir.exists() {
18 return Err(DsError::DirDoesntExists(wdir));
19 }
20 space.wdir = wdir;
21 }
22
23 if let Some(tree) = tree {
24 if ctx.config.get_tree(&tree).is_err() {
25 return Err(DsError::SpaceTreeNotFound(tree));
26 }
27 space.tree = tree;
28 }
29
30 println!(
31 "from {:?}, {}, {}",
32 space_name,
33 old_space.wdir.display(),
34 old_space.tree.0
35 );
36
37 println!(
38 "to {:?}, {}, {}",
39 space_name,
40 space.wdir.display(),
41 space.tree.0
42 );
43
44 Ok(())
45}