From 427128fe5c8f3fc8635ad4cadd51f456ff693475 Mon Sep 17 00:00:00 2001 From: Joscha Date: Sat, 3 May 2025 01:09:19 +0200 Subject: [PATCH] Print data dir only in status command --- gdn-cli/src/commands/status.rs | 16 +++++++++++++--- gdn-cli/src/main.rs | 1 - gdn/src/data.rs | 6 ++++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/gdn-cli/src/commands/status.rs b/gdn-cli/src/commands/status.rs index d819551..fd12dde 100644 --- a/gdn-cli/src/commands/status.rs +++ b/gdn-cli/src/commands/status.rs @@ -8,10 +8,20 @@ pub struct Command {} impl Command { pub fn run(self, env: &Environment) -> anyhow::Result<()> { - let data_dir = gdn::data::open(env.data_dir.clone())?; - let state = gdn::data::load_state(&data_dir)?; + println!("Data dir: {}", env.data_dir.display()); - println!("Data dir version: {}", gdn::data::VERSION); + let version = gdn::data::read_version(env.data_dir.clone())?; + if version == gdn::data::VERSION { + println!("Data dir version: {version} (current)"); + } else { + println!( + "Data dir version: {version} (outdated, current: {})", + gdn::data::VERSION + ); + } + + let data = gdn::data::open(env.data_dir.clone())?; + let state = gdn::data::load_state(&data)?; println!(); if state.repos.is_empty() { diff --git a/gdn-cli/src/main.rs b/gdn-cli/src/main.rs index a920c61..01832fb 100644 --- a/gdn-cli/src/main.rs +++ b/gdn-cli/src/main.rs @@ -28,7 +28,6 @@ fn run() -> anyhow::Result<()> { data_dir: gdn::data::path()?, }; - println!("Data dir: {}", env.data_dir.display()); args.cmd.run(&env)?; Ok(()) } diff --git a/gdn/src/data.rs b/gdn/src/data.rs index 7ea2714..b9d3771 100644 --- a/gdn/src/data.rs +++ b/gdn/src/data.rs @@ -26,6 +26,12 @@ fn migrate(dir: &LockedDataDir) -> anyhow::Result<()> { } } +pub fn read_version(path: PathBuf) -> anyhow::Result { + let dir = UnlockedDataDir::new(path); + let version = dir.read_version()?; + Ok(version) +} + pub fn open(path: PathBuf) -> anyhow::Result { let dir = UnlockedDataDir::new(path); dir.require_version(VERSION)?;