hyprshell_core_lib/util/
version.rs1use anyhow::Context;
2use semver::Version;
3use tracing::info;
4
5pub const MIN_VERSION: Version = Version::new(0, 42, 0);
6
7pub fn check_version(version: anyhow::Result<String>) -> anyhow::Result<()> {
8 if let Ok(version) = version {
9 info!(
10 "Starting hyprshell {} in {} mode on hyprland {}",
11 env!("CARGO_PKG_VERSION"),
12 if cfg!(debug_assertions) {
13 "debug"
14 } else {
15 "release"
16 },
17 version,
18 );
19 let parsed_version =
20 Version::parse(&version).context("Unable to parse hyprland Version")?;
21 if parsed_version.lt(&MIN_VERSION) {
22 Err(anyhow::anyhow!(
23 "hyprland version {} is too old or unknown, please update to at least {}",
24 parsed_version,
25 MIN_VERSION
26 ))
27 } else {
28 Ok(())
29 }
30 } else {
31 Err(anyhow::anyhow!("Unable to get hyprland version"))
32 }
33}