Skip to content

Commit

Permalink
Print Sierra version in scarb --version
Browse files Browse the repository at this point in the history
  • Loading branch information
mkaput committed Aug 17, 2023
1 parent f47aef6 commit f58ec85
Showing 1 changed file with 32 additions and 6 deletions.
38 changes: 32 additions & 6 deletions scarb/src/version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
use std::fmt;
use std::fmt::Write;

use indoc::formatdoc;
use once_cell::sync::Lazy;
use serde::{Deserialize, Serialize};

use scarb_build_metadata::{
Expand All @@ -16,6 +18,7 @@ pub struct VersionInfo {
pub version: &'static str,
pub commit_info: Option<CommitInfo>,
pub cairo: CairoVersionInfo,
pub sierra: SierraVersionInfo,
}

/// Cairo's version.
Expand All @@ -25,6 +28,12 @@ pub struct CairoVersionInfo {
pub commit_info: Option<CommitInfo>,
}

/// Sierra version.
#[derive(Serialize, Deserialize, Debug)]
pub struct SierraVersionInfo {
pub version: &'static str,
}

/// Information about the Git repository where the crate was built from.
#[derive(Serialize, Deserialize, Debug)]
pub struct CommitInfo {
Expand Down Expand Up @@ -52,13 +61,15 @@ impl VersionInfo {
}

pub fn long(&self) -> String {
format!(
"\
{short}\n\
cairo: {cairo}\
",
formatdoc!(
r#"
{short}
cairo: {cairo}
sierra: {sierra}
"#,
short = self.short(),
cairo = self.cairo.short()
cairo = self.cairo.short(),
sierra = self.sierra.short(),
)
}
}
Expand All @@ -73,6 +84,12 @@ impl CairoVersionInfo {
}
}

impl SierraVersionInfo {
pub fn short(&self) -> &str {
self.version
}
}

fn display_version_and_commit_info(
version: &str,
commit_info: &Option<CommitInfo>,
Expand Down Expand Up @@ -114,9 +131,18 @@ pub fn get() -> VersionInfo {
}
};

static SIERRA_VERSION: Lazy<String> = Lazy::new(|| {
cairo_lang_starknet::compiler_version::current_sierra_version_id().to_string()
});

let sierra = SierraVersionInfo {
version: &SIERRA_VERSION,
};

VersionInfo {
version: SCARB_VERSION,
commit_info,
cairo,
sierra,
}
}

0 comments on commit f58ec85

Please sign in to comment.