feat: add detailed --version output with build-time version injection

This commit is contained in:
2026-06-22 13:42:52 +08:00
parent eb05e27655
commit 0a138f6f11
5 changed files with 35 additions and 3 deletions
+6
View File
@@ -24,6 +24,12 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - 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 - name: Install Rust
run: | run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable
Generated
+1 -1
View File
@@ -218,7 +218,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
[[package]] [[package]]
name = "claude-code-skill-manager" name = "claude-code-skill-manager"
version = "0.1.0" version = "0.2.0"
dependencies = [ dependencies = [
"clap", "clap",
"dirs", "dirs",
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "claude-code-skill-manager" name = "claude-code-skill-manager"
version = "0.1.0" version = "0.2.0"
edition = "2021" edition = "2021"
[[bin]] [[bin]]
+19
View File
@@ -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");
}
+8 -1
View File
@@ -1,10 +1,17 @@
use clap::{Args, Parser, Subcommand}; 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)] #[derive(Parser)]
#[command( #[command(
name = "ccsm", name = "ccsm",
about = "Claude Code Skill Marketplace — discover and install skills from Git marketplaces", about = "Claude Code Skill Marketplace — discover and install skills from Git marketplaces",
version version = VERSION_TEXT,
)] )]
pub struct Cli { pub struct Cli {
#[command(subcommand)] #[command(subcommand)]