diff --git a/gdn-cli/src/commands.rs b/gdn-cli/src/commands.rs index acc76df..5b9b077 100644 --- a/gdn-cli/src/commands.rs +++ b/gdn-cli/src/commands.rs @@ -3,16 +3,19 @@ use clap::Parser; use crate::Environment; mod migrate; +mod status; #[derive(Debug, Parser)] pub enum Command { Migrate(migrate::Command), + Status(status::Command), } impl Command { pub fn run(self, env: &Environment) -> anyhow::Result<()> { match self { Self::Migrate(command) => command.run(env), + Self::Status(command) => command.run(env), } } } diff --git a/gdn-cli/src/commands/status.rs b/gdn-cli/src/commands/status.rs new file mode 100644 index 0000000..363f238 --- /dev/null +++ b/gdn-cli/src/commands/status.rs @@ -0,0 +1,22 @@ +use clap::Parser; + +use crate::Environment; + +/// Display current status. +#[derive(Debug, Parser)] +pub struct Command {} + +impl Command { + pub fn run(self, env: &Environment) -> anyhow::Result<()> { + let data_dir = gdn::data::open(env.data_dir.clone())?; + println!("Data dir version: {}", gdn::data::VERSION); + + let state = gdn::data::load_state(&data_dir)?; + match state.name { + Some(name) => println!("Name: {name}"), + None => println!("No name"), + } + + Ok(()) + } +} diff --git a/gdn/src/data.rs b/gdn/src/data.rs index 8f57dc0..dca543e 100644 --- a/gdn/src/data.rs +++ b/gdn/src/data.rs @@ -10,7 +10,7 @@ mod v1; pub use self::{ datadir::{LockedDataDir, UnlockedDataDir}, - v1::{VERSION, load_state, save_state}, + v1::{State, VERSION, load_state, save_state}, }; fn migrate(dir: &LockedDataDir) -> anyhow::Result<()> {