moonbit_version_cli

    CI-native MoonBit version detection tool. JSON output, semver constraint checking via environment variables. Designed for CI pipelines and automation scripts.

    moonbit
    version
    semver
    ci
    detection
    Download zip
    Author
    Version
    0.10.0
    License
    Apache-2.0
    Last updated
    4 months ago
    Downloads
    74

    #moonbit_version_cli

    CI-native MoonBit version detection tool. JSON output with semver constraint checking.

    #Usage

    CLI output is always JSON. Exit code reflects constraint checks.

    # Detect moon version (JSON stdout) moonbit_version_cli # Check minimum version — exit 1 if detected version < 0.1.0 MOONBIT_CHECK_MIN=0.1.0 moonbit_version_cli # Check maximum version — exit 1 if detected version > 0.2.0 MOONBIT_CHECK_MAX=0.2.0 moonbit_version_cli # Both constraints simultaneously MOONBIT_CHECK_MIN=0.1.0 MOONBIT_CHECK_MAX=0.2.0 moonbit_version_cli

    #Output Format

    { "moon_version": "moon 0.1.20260512 ...", "semver": {"major": 0, "minor": 1, "patch": 20260512}, "check_min": null, "check_max": null, "meets_min": true, "meets_max": true, "meets_all": true }

    SemVer

    pub struct SemVer {
    major : Int
    minor : Int
    patch : Int
    }
    SemVer struct (major.minor.patch).

    VersionReport

    pub struct VersionReport {
    moon_version : String
    semver : SemVer?
    check_min : SemVer?
    check_max : SemVer?
    meets_min : Bool
    meets_max : Bool
    meets_all : Bool
    }
    Version detection report.

    compare_semver

    fn compare_semver(a : SemVer, b : SemVer) -> Int
    Compare two SemVers. Returns -1 if a < b, 0 if equal, 1 if a > b.

    detect_moon_version

    fn detect_moon_version() -> String
    Detect the installed moon CLI version.

    exit_process

    fn exit_process(code : Int) -> Unit
    Exit the process with a code.

    get_env

    fn get_env(name : String) -> String?
    Get an environment variable string.

    make_report

    fn make_report(moon_version : String) -> VersionReport
    Build a complete version report with optional constraints from env vars.

    parse_semver

    fn parse_semver(s : String) -> SemVer?
    Parse a semver string "x.y.z" (optionally with leading text or pre-release suffix).

    report_to_json

    fn report_to_json(report : VersionReport) -> String
    Serialize version report to JSON.