diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 0a3cf10..27de6b5 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -24,6 +24,12 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Set version + run: | + VERSION="${{ github.event.release.tag_name }}" + VERSION="${VERSION#v}" + echo "CCSM_VERSION=$VERSION" >> "$GITHUB_ENV" + - name: Install Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable diff --git a/Cargo.lock b/Cargo.lock index 17f0a29..f2444aa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,7 +218,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "claude-code-skill-manager" -version = "0.1.0" +version = "0.2.0" dependencies = [ "clap", "dirs", diff --git a/Cargo.toml b/Cargo.toml index c591c7e..a9fb7a1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "claude-code-skill-manager" -version = "0.1.0" +version = "0.2.0" edition = "2021" [[bin]] diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..05dcf6d --- /dev/null +++ b/build.rs @@ -0,0 +1,19 @@ +use std::process::Command; + +fn main() { + let version = std::env::var("CCSM_VERSION") + .unwrap_or_else(|_| env!("CARGO_PKG_VERSION").to_string()); + + let commit = Command::new("git") + .args(["rev-parse", "--short", "HEAD"]) + .output() + .ok() + .and_then(|o| String::from_utf8(o.stdout).ok()) + .map(|s| s.trim().to_string()) + .unwrap_or_else(|| "unknown".to_string()); + + println!("cargo:rustc-env=CCSM_VERSION={version}"); + println!("cargo:rustc-env=GIT_COMMIT_SHORT={commit}"); + println!("cargo:rerun-if-changed=.git/HEAD"); + println!("cargo:rerun-if-env-changed=CCSM_VERSION"); +} diff --git a/src/cli.rs b/src/cli.rs index 5baeadb..0879897 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -1,10 +1,17 @@ use clap::{Args, Parser, Subcommand}; +const VERSION_TEXT: &str = concat!( + env!("CCSM_VERSION"), + " -- ", + env!("GIT_COMMIT_SHORT"), + " -- Claude Code Skill Manager\nby OnixByte" +); + #[derive(Parser)] #[command( name = "ccsm", about = "Claude Code Skill Marketplace — discover and install skills from Git marketplaces", - version + version = VERSION_TEXT, )] pub struct Cli { #[command(subcommand)]